如何应用份认证模块和.htaccess文件保证Web安全

   要限制对一个网页的访问,可使用Apache和第三方提供的身份认证模块和方法来验证用户的凭据(如用户名和密码)。一些模块支持通过各种数据库(包括NIS和LDAP)进行身份认证。

  用户认证指令通常放置在.htaccess文件中。下面是使用Apache默认身份认证模块(mod_auth)的一个基本.htaccess文件。当这个文件放置在/var/www中时,会导致Apache要求用户输入密码进行验证,然后浏览器才能访问/var/www目录层次结构中的内容。应用时,要用本地服务器的相应值进行替换。

  # cat .htaccess

  AuthUserFile /var/www/.htpasswd

  AuthGroupFile /dev/null

  AuthName "Browser dialog box query"

  AuthType Basic

  require valid-user

  /var/www/.htpasswd是一个.htpasswd文件的典型绝对路径名,用户在要求输入用户名和密码的对话框中会看到字符串Browser dialog box query。

  前面.htaccess文件的第二行关闭组功能。第四行指定用户的身份认证类型为Basic,这也是mod_auth模块的默认设置。最后一行告诉Apache哪些用户可以访问受保护的目录。valid-user条目会授权任何用户(用户名在Apache密码文件中并且输入的密码正确)访问该目录。

  只要Apache可以读取其密码文件,该文件可放在系统上的任何地方。把这个文件与.htaccess文件放在同一目录下也是安全的,因为默认情况下,Apache将不会对名字以.ht开头的任何文件的请求进行回复。但是一定不要更改httpd.conf配置文件,以防Apache对名字以.ht开头的文件的请求进行回复。

  下面的命令将在工作目录中创建(–c)一个带有Sam条目的.htpasswd文件。省略–c选项可以在现有.htpasswd文件中添加用户或更改密码。

  $ htpasswd -c .htpasswd sam

  New password:

  Re-type new password:

  Adding password for user sam

  默认的httpd.conf文件包括用于/var/www的AllowOverride None指令。要启用Apache来处理用户认证指令(如读取.htaccess文件),必须将这个指令更改为AllowOverride AuthConfig或将其删除。

  在Apache已配置为可处理.htaccess文件后,当它收到对文件的请求时,必须从所请求的文件向上遍历目录层次结构一直到根目录,查找.htacess文件,以确定它是否可以提供该请求的文件。此搜索可能会影响性能。通常情况下性能下降不太严重,但如果性能很关键,则这个问题将很棘手。

时间: 2024-09-17 04:16:21

如何应用份认证模块和.htaccess文件保证Web安全的相关文章

Apache的Mode Rewrite模块和.htaccess文件配合

Apache的Mode Rewrite模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.在大多数情况下,它和.htaccess文件配合使用.比如本篇文章的URL(http://dancewithnet.com/2010/05/29/making-mod-rewrite-and-htaccess-work-on-mac-os-x)就是Wordpress配合Mod Rewrite模块和.htaccess文件一起实现的,即所谓的固定链接(Permalinks). Windows 在Wi

使用 .htaccess 文件禁用 Web 目录列举

确保 Apache web 服务器安全 是最重要的任务之一,特别是在你的网站刚刚搭建好的时侯. 比方说,如果你 Apache 服务目录 (/var/www/tecmint 或 /var/www/html/tecmint) 下创建一个名为tecmint 的目录,并且忘记在该目录放置 index.html,你会惊奇的发现所有访问者都可以在浏览器输入 http://www.example.com/tecmint 来完整列举所有在该目录中的重要文件和文件夹. 本文将为你展示如何使用 .htaccess 

Apache指南: .htaccess文件使用手册

因为在一个国外的空间的根文件夹下看到这个.htaccess,搞不懂是干什么的,在落伍论坛找到一篇文章,先转过来放着,以后再慢慢研究,嘿嘿..      Apache指南: .htaccess文件  .htaccess文件提供了针对目录改变配置的方法.    * .htaccess文件    * 工作原理和使用方法    * 使用.htaccess文件的场合    * 指令的生效    * 认证举例    * 服务器端包含举例    * CGI举例    * 疑难解答  top  .htacces

.htaccess文件使用教程总结_Linux

.htaccess的特别说明 * 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用 * 如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变.例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置: AccessFileName .config  * 一般情况下,不应该使用. htaccess文件,除非你对主配置文件没有访问权限.有一种很常见的误解,认

Apache .htaccess文件使用手册

.htaccess文件提供了针对目录改变配置的方法. * .htaccess文件 * 工作原理和使用方法 * 使用.htaccess文件的场合 * 指令的生效 * 认证举例 * 服务器端包含举例 * CGI举例 * 疑难解答 .htaccess文件 相关模块 相关指令 * core * mod_auth * mod_cgi * mod_include * mod_mime * AccessFileName * AllowOverride * Options * AddHandler * SetH

详解Apache下.htaccess文件的8个用法

.htaccess文件允许我们针对特定目录及其子目录修改一些服务器设置,虽然这种类型的配置最好是在服务器本身配置文件的小节部分处理,但有时我们根本没有权限访问这个配置文件,尤其是当我们在一台共享的托管主机上,大多数共享主机服务商只允许我们以.htaccess方式来改变服务器的行为. .htaccess文件是一个简单的文本文件,注意文件名前的"."很重要,我们可以用自己喜欢的文本编辑器编辑它,然后上传到我们的服务器,将其放在我们想要改变服务器默认行为的目录下. 通过.htaccess文件

.htaccess文件设置技巧16则

.htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能..htaccess 配置文件坚持了Unix的一个文化--使用一个ASCII 的纯文本文件来配置你的网站的访问策略. 这篇文章包括了16个非常有用的小技巧.另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备

使用Lua编写Nginx服务器的认证模块的方法

  这篇文章主要介绍了使用Lua编写Nginx服务器的认证模块的方法,即诸如当今流行的社交应用接入等功能,需要的朋友可以参考下 过去两天里,我解决了一个非常有趣的问题.我用一个nginx服务器作为代理,需要能够向其中添加一个认证层,使其能够使用外部的认证源(比如某个web应用)来进行验证,如果用户在外部认证源有账号,就可以在代理里认证通过. 需求一览 我考虑了几种解决方案,罗列如下: 用一个简单的Python/Flask模块来做代理和验证. 一个使用subrequests做验证的nginx模块(

五个htaccess文件的常用技巧

  1. 防止盗链 盗链 也叫内嵌链接,是指一个网站的链接直接导向另一个网站上的对象.这会给另一个网站造成带宽和流量的损失.对于提供大量图片的站点来说,这个问题就比较严重. 使用htaccess可以解决这个问题. 我们将按下面的步骤一步步操作 首先得打开Apache里的mod_rewrite,用于实现重新定向用户的请求. 下一步,用RewriteCond设置条件.这需要运用到两个参数TestString 和CondPattern.TestString是用来验证CondPattern的字符串(使用