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

安全 应用安全
要限制对一个网页的访问,可使用Apache和第三方提供的身份认证模块和方法来验证用户的凭据(如用户名和密码。本文介绍如何应用份认证模块和.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文件,以确定它是否可以提供该请求的文件。此搜索可能会影响性能。通常情况下性能下降不太严重,但如果性能很关键,则这个问题将很棘手。

责任编辑:蓝雨泪 来源: TechTarget中国
相关推荐

2011-02-13 14:36:35

2013-02-18 16:12:55

2010-10-08 10:17:59

Web服务安全

2012-03-20 10:28:43

2017-03-09 15:32:04

Linux.htaccessWeb目录

2009-04-09 21:56:14

2020-09-30 11:22:16

帐户安全

2011-03-25 11:39:29

2011-03-31 09:40:46

2021-07-20 09:44:34

云原生应用程序安全云安全

2022-06-22 09:00:00

安全编程语言工具

2011-09-23 10:13:43

2021-05-26 08:49:15

API接口安全

2023-01-26 02:07:51

HashSet线程安全

2022-02-21 17:41:32

自动驾驶安全技术

2010-11-23 09:26:57

2009-09-24 09:34:36

2014-06-05 09:58:21

2010-09-06 09:27:54

社交网络

2012-03-07 10:00:35

点赞
收藏

51CTO技术栈公众号