【问题标题】:Is protecting a website directory with a .htaccess file secure?使用 .htaccess 文件保护网站目录是否安全?
【发布时间】:2009-05-15 14:35:17
【问题描述】:

我想知道使用 .htaccess 文件(使用公共 apache webroot 之外的 .htpasswd 文件)保护 web 目录是否是保护目录(及其内容)的安全方法。

有人能解释一下这种保护的注意事项吗?

【问题讨论】:

    标签: security authentication .htaccess .htpasswd


    【解决方案1】:

    如果您使用标准的 http 协议,身份验证将不受保护地通过网络。这不被认为是安全的,因为有人可能会嗅到密码。

    如果您限制对 https 的访问,这是非常安全的。这意味着为 ssl 加密的 http 流量(端口 433,浏览器地址行中的 https://)安装和启用 apache 模块,并在端口 80 上禁用此目录的标准 http 流量。用户名和密码将为 ssl加密。请务必选择一个好的密码(足够长且足够复杂,无法猜测或暴力破解)。

    Apache 配置可能很棘手,因此请务必保持简单并针对可能出现的错误进行测试。

    如果您了解并控制它,将访问限制配置从 .htaccess 文件移动到主 apache 配置文件可能是一个好主意。您也可以更轻松地将其保存在 .htacces 文件中。而“简单”可以更安全。以您感觉简单、安全、易于维护和记忆的方式进行操作。

    这是一个简单的设置,可增强安全性并防止事故发生:

    如果您在受保护目录所在的机器上配置了 php 和 email,您可以编写一个简单的警报脚本。只是一个 php 文件“alarm.php”,其中包含向您发送电子邮件的 php 邮件功能,告诉您 htaccess 保护不起作用。

    如果您的域和目录路径是“http://mybox.example.com/secretdir/alarm.php”,您可以在另一台机器上的浏览器中输入它,只要“打开”htaccess,您就应该收到该邮件。如果它受到保护,您可以输入用户名和密码,您也会收到邮件。

    要为此发出自动警报,您可以使用不同的 unix 框,每隔 15 分钟左右尝试获取此 URL。 crontab 的行:

    */15 * * * * user1 wget http://mybox.example.com/secretdir/alarm.php

    user1是这台机器上允许运行wget的用户,必须安装wget。

    您可以禁用 htaccess 保护作为测试,并且应该每 15 分钟收到一次邮件。

    根据我的经验,当您更改某些内容但您不知道时,您认为受保护的目录会失去其保护,这是一个常见的安全漏洞,这样您就会收到警告您的电子邮件。

    【讨论】:

      【解决方案2】:

      据我所知,如果 htaccess 被拦截(例如,您从运行网络嗅探器的网吧登录),htaccess 很容易被破解。 As far as I knowDigest authentication 有助于解决这个问题。

      【讨论】:

        【解决方案3】:

        .htaccess 是在您无权访问主配置文件/没有 root 访问权的情况下,如何对 Apache HTTPD 提供的资源进行每个目录配置更改的非常标准的方法。

        如果您可以访问主配置,则将所有配置(包括身份验证)放在一个中心位置(即使它被拆分为多个文件)会容易得多,这样就不容易忽略它。根据我的经验,我可以告诉您,忘记 .htaccess 文件只是时间问题。

        官方文档多次提到应尽可能避免使用.htaccess 文件。

        如果使用 .htaccess 是您唯一的选择,请确保您遵循与主要 HTTPD 配置一样的一般安全预防措施,即防止未经授权的用户读取它们,服务器可以读取文件,确保您始终禁用目录列表确保密码以加密/哈希格式等存储。

        欲了解更多信息,请查看Apache htaccess tutorial

        【讨论】:

          【解决方案4】:

          .htaccess 文件非常方便,但是......这不会保护您免受他人利用您的代码并读取他想要的任何文件。如果您的网站(即使是一个小脚本)将被利用,.htaccess 或其他解决方案都不会保护您,因为黑客将获得执行脚本的用户的权限(通常是 www-data)。

          这在 CGI 中尤其痛苦,但其他脚本也被黑客入侵。

          【讨论】:

          • 如果整个脚本完全驻留在一个受htaccess密码保护的目录中,因为他根本无法访问脚本,这不是不可能破解脚本吗?在那种情况下,htacess 的安全性如何?
          • 如果这是此服务器上唯一的脚本,那么您是非常安全的。如果任何其他目录中的任何其他脚本将被黑客入侵,那么您可能会遇到麻烦。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 2012-08-21
          • 2012-08-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多