我想知道用.htaccess文件(公共apache webroot外部的.htpasswd文件)保护web目录是否是保护目录(及其内容)的安全方法。
有人可以解释这种保护的做法和注意事项吗?
答案 0 :(得分:4)
如果您使用标准http协议,将通过网络不受保护地传递身份验证。这不被认为是安全的,因为有人可以嗅到密码。
如果限制对https的访问,则非常安全。这意味着为ssl加密的http流量(浏览器的地址行中的端口433,https://)安装并启用apache模块,并在端口80上禁用此目录的标准http流量。用户名和密码将为ssl加密。一定要选择一个好的密码(长而复杂,无法猜测或暴力)。
Apache配置可能很棘手,因此请务必小心谨慎,以防止可能出现的错误。
如果您了解并控制了访问限制配置,请将.htaccess文件中的访问限制配置移动到主apache配置文件中。也可以更容易将其保存在.htacces文件中。而“简单”可以更安全。这样做的方式既简单又安全,易于维护和记忆。
这是一个简单的设置,可以增强安全性并防止意外发生:
如果您在受保护目录所在的计算机上配置了php和电子邮件,则可以编写简单的警报脚本。只是一个php文件“alarm.php”,带有一行的php邮件功能向你发送一封电子邮件,告诉你htaccess保护不起作用。
如果您的域和目录路径是“http://mybox.example.com/secretdir/alarm.php”,您可以在另一台计算机上的浏览器中输入此内容,只要htaccess被“打开”,您就应该收到该邮件。如果受到保护,您可以输入用户名和密码,您也可以收到邮件。
要从中制作自动警报,您可以使用不同的unix框,每隔15分钟左右尝试获取此网址。 crontab的行:
* / 15 * * * * user1 wget http://mybox.example.com/secretdir/alarm.php
user1是此计算机上允许运行wget的用户,必须安装wget。
您可以禁用htaccess保护作为测试,并且应该每15分钟收到一次邮件。
根据我的经验,一个常见的安全漏洞是,当您更改某些内容并且您不知道时,您认为受保护的目录会失去其保护,这样您就会收到警告您的电子邮件。
答案 1 :(得分:1)
据我所知,htaccess很容易入侵,如果它被截获(例如,您正在从网络嗅探器运行的网吧登录)。 As far as I know,Digest authentication有助于克服这个问题。
答案 2 :(得分:0)
.htaccess是非常标准的方法,在您无法访问主配置文件/没有root访问权限的情况下,如何对Apache HTTPD所服务的资源进行每目录配置更改。
如果您可以访问主配置,那么将所有配置(包括身份验证)放置在一个中心位置(即使它被拆分为多个文件)要容易得多,因此忽略它并不容易。根据我的经验,我可以说,忘记.htaccess
文件只是时间问题。
官方文档多次提到应尽可能避免使用.htaccess
文件。
如果使用.htaccess
是您唯一的选择,请确保遵循主要HTTPD配置的一般安全预防措施,即防止未经授权的用户阅读,文件可由服务器读取,确保您已禁用目录列表,始终确保密码以加密/哈希格式等存储。
有关详情,请查看Apache htaccess
tutorial
答案 3 :(得分:0)
.htaccess文件非常方便,但是......这不会保护您免受利用您的代码并阅读他想要的任何文件的人的侵害。如果您的站点(甚至一个小脚本)将被利用,也不会.htaccess或其他解决方案将保护您,因为黑客将获得执行脚本的用户的权限(通常是www-data)。
这在CGI中尤其痛苦,但其他脚本也被黑客入侵。