目前,我们使用 .htaccess 和 .htpasswd 保护我们网站上的目录。但我想知道这有多安全?有什么我应该注意或可以做的事情使它更安全吗?
我不知道为什么,但它对此并没有真正的信心。我感觉这种安全很容易被破解。根据我的阅读,有一些方法可以下载 .htpasswd 文件并解密密码。
目前,我们使用 .htaccess 和 .htpasswd 保护我们网站上的目录。但我想知道这有多安全?有什么我应该注意或可以做的事情使它更安全吗?
我不知道为什么,但它对此并没有真正的信心。我感觉这种安全很容易被破解。根据我的阅读,有一些方法可以下载 .htpasswd 文件并解密密码。
如果所有访问都是通过 SSL 进行的,那么它是相当安全的。
没有 SSL 的基本身份验证仅将用户名/密码作为 base64 编码发送 - 因此通过 MITM 或嗅探提取令牌是微不足道的。
没有 SSL 的摘要式身份验证要好得多(基于质询的机制),但仍不如加密连接安全。然而,很少有迹象表明身份验证是作为 Digest 而不是 Basic 实现的。代理身份验证挑战看起来也非常相似。
内置的身份验证机制无法提供良好的用户体验。如果这是针对具有小型、已定义用户组的站点,那么使用内置方法是一种快速的解决方案(但您可能会考虑使用客户端证书身份验证)。但是对于一个面向公众的网站,你应该考虑实现一些更复杂的东西。
您应该适当地配置您的网络服务器,以防止直接访问 htaccess 文件和密码数据库。通过将配置放在文档根目录之外(显然这不适用于 htaccess 文件 - 但它们只是网络服务器配置的本地扩展)或阻止对文件的访问。我遇到的每个 Apache 发行版都会阻止访问名称以“.ht”开头的文件
虽然您可以阻止直接访问密码 db,但限制通过 HTTP 对服务器进行暴力攻击的范围并不大——这是考虑基于表单的方法的另一个原因。
理想情况下,黑客不应该能够下载您的 .htpasswd 文件——只要您不提供 FTP 访问权限并且您没有任何文件,apache 将禁止访问以“.ht”开头的任何文件您的应用程序中的漏洞,您应该处于良好状态。
我会查看此资源以确保 htaccess 受到适当保护:
http://www.symantec.com/connect/articles/hardening-htaccess-part-one
如果您想要更大的操作控制,我会检查 WAF 或 mod_security:
http://www.askapache.com/htaccess/modsecurity-htaccess-tricks.html