Ste*_*eve 40 apache security .htaccess
使用.htaccess保护目录的密码是防止未经授权的用户看到其文件的最佳方法吗?是否有任何替代方法可以保护目录的内容,同时仍然让经过身份验证的人可以查看它?
此外,有人试图强行进入,导致服务器紧张吗?
reg*_*ero 66
有几点需要注意:
通过使用<Directory>
主配置(或虚拟主机配置)中的指令,始终可以在没有.htaccess的情况下在.htaccess中添加安全性.它会更快(如果你删除.htaccess的完全支持AllowOverride None
),你不会有人改变你.htaccess的风险.
有几种方法可以在.htaccess文件中添加安全性,其中一种方法是使用Basic HTTP Authentification和.htpasswd
文件.这些.htpasswd文件不应位于Web目录根目录中.另一种可能性是使用HTTP摘要身份验证,限制是非常老的浏览器不支持它(如IE6).
我们经常遇到HTTP Basic Authentification.这是一种非常弱的保护,仅仅是因为它的工作方式.在第一次请求时,您被拒绝,然后您的浏览器会要求您输入密码并登录,并记住所请求的网络服务器的密码登录关联.然后,对于发送到此Web服务器的每个请求,直到您关闭浏览器,登录名和密码将添加到请求标头中,未加密.只有一个base64编码应用于字符串'Yourlogin:Yourpassword',使其看起来像纯ASCII7字符串并防止编码问题.
所以任何人嗅探你的请求(wifi热点,中间的人,本地网络,回声开关等)都会知道你的密码和登录.坏.规则是":
如果连接不是HTTPS(SSL),则永远不要使用Basic HTTP Authentification.
如果您的网络服务器完全没有HTTPS问题(请参阅底部的编辑),则明文/密码将通过SSL加密.
对于暴力问题(是的,有些人可以尝试强制登录/密码,除非你调整mod_security模块以防止这种情况),htpasswd页面的安全性考虑非常清楚:
使用crypt()算法时,请注意只使用密码的前8个字符来形成密码.如果提供的密码较长,则会以静默方式丢弃多余的字符
和:
在Windows和MPE平台上,使用htpasswd加密的密码长度不得超过255个字符.较长的密码将被截断为255个字符.
因此,对密码使用SHA 编码哈希(即使它没有被腌制).
让经过身份验证的用户浏览目录内容的另一种方法是在应用程序(PHP,Tomcat等)中处理目录列表和文件上载,而不是使用apache自动列表.在安全性方面,自动列表模块(mod_autoindex)是您在运行的apache上不应该拥有的.
编辑
如果您只想使用HTTP身份验证来保护某些网址,则不需要完整的HTTPS服务器.你真正需要的是所有这些受保护的URL应该是https,如果未受保护的URL在http域中,则不会使用身份验证头,因为这是一个不同的域(并且域通过身份验证头).因此,您可以在http域中为这些URL添加基本重定向规则,可能是这样的:
RedirectMatch 301 ^/secure/(.*)$ https://www.example.com/secure/$1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32548 次 |
最近记录: |