06 Oct 2009配置.htaccess进行目录密码保护
我们知道.htaccess的用法多种多样,通过它我们可以实现防盗链、404、禁止IP、重定向等,但至今最流行的也可能是最有用的做法是将其用于网站目录的密码保护。尽管JavaScript等也能做到,但只有.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,绝无“后门”可走)。使用.htaccess保护目录后访客在访问相应目录时会有 用户名/密码 输入弹窗,不能正确输入密码则无法打开目录页面及程序。
在实际应用中,我就是经常使用.htaccess来保护一些目录页面的,比如我的私人dabr等,要使用.htaccess进行网站目录密码保护主要分为2个步骤:
1.配置.htaccess文件
2.创建.htpasswd密码文件
具体步骤如下:
1.运行“记事本”或其它类似软件,新建一个文件,输入以下内容:
AuthName “Section Name”
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user
其中,Section Name出现在弹出的密码输入框中,我们可以自己定义;/full/path/to/.htpasswd是我们第二步密码文件.htpasswd的绝对路径,需要注意的是:一定要是服务器上的绝对位置,如果不知道可以用PHP探针或者询问空间服务商,也可以上传一个错误的PHP文件,执行时错误提示信息里会显示文件的位置。
2.新建一个密码文件.htpasswd,这个文件里面的内容格式为 user:password 注意:password必须为加密的格式,你可以通过几种方法来得到加密过的密码:一是使用一个网上提供的permade脚本或自己写一个;另一个很不错的 username/password 加密服务是通过KxS网站,这里允许你输入用户名及密码,然后生成正确格式的密码。
对于多用户而言,你只需要在.htpasswd文档中新增同样格式的一行即可。另外还有一些免费的脚本程序可以方便地管理.htpasswd文档,可以自动新增/移除用户等。
像.htaccess一样,.htpasswd也是一个没有文件名且具有8位扩展名的文档,可以放置在你网站里的任何地方(此时密码最好加密),建议你将其保存在网站Web根目录外,这样通过网络就无法访问到它了。
最后,把 .htaccess 上传到你的网站需要加密的目录,.htpasswd 文件根据你的情况可以自己选择上传位置,不过要记得 .htaccess 里的 AuthUserFile 也要相应地定位准确。
刷新一下看看效果吧!
当你试图访问被 .htaccess 密码保护的目录时,你的浏览器会弹出标准的 username/password 对话窗口。如果你不喜欢这种方式,有些脚本程序可以允许你在页面内嵌入 username/password 输入框来进行认证,这里不做介绍了。你也可以在浏览器的URL框内以以下方式输入用户名和密码(未加密的)来直接进行访问:
http://username:[email protected]/directory/
Til next time,
Jason at 00:00