禁止覆盖 .htaccess 中的访问列表(基于黑名单的 AllowOverride)

禁止覆盖 .htaccess 中的访问列表(基于黑名单的 AllowOverride)

我们有一些带有自己的网络软件.htaccess。在我们的内部测试服务器上,我们想要配置一些访问权限(htaccess 密码)

我们希望避免对测试服务器进行特定的修改.htaccess

我们在 Apache 2 的 vhost 配置中执行此操作。

.htaccess包含:

Order allow,deny
Allow from all

我们如何才能阻止这些设置?有没有基于黑名单的指令方法AllowOverride?比如DontAllowOverride Order Allow

答案1

嗯,有一个优秀的文档可供所有人使用。

AllowOverride Limit

允许 Order/ Deny/Allow指示。

AllowOverride AuthConfig, FileInfo, Indexes

允许除//指令之外的任何内容Order以及Deny任何Allow需要Options列出的内容。

但正如@jeffatrackaid 所说,这样做肯定会更好AllowOverride Nonoe

您将从 Apache 获得更快的速度,并将所有需要的配置放在 Virtualhosts/Directory/Locations 部分。.htaccess文件与安全性无关.htpassword

答案2

我很确定 vhost 目录配置是在 htaccess 文件之后处理的。因此在这种情况下,您无法限制用户,因为 htaccess 文件将允许所有用户。

您可能需要查看:

  1. 根据每个目录阻止 htaccess。
  2. 检查 Require 和 Satisfy 参数。如果您在 vhost 配置中添加了密码保护,则可以使用 Satisfy 参数来要求用户同时匹配 htaccess 标准和密码。

当然要测试。

一般而言,如果您不确定用户是否会覆盖文件,我建议禁用您尝试保护的目录上的 htaccess。如果您需要 htaccess 文件中的指令,您可以随时将其归属于没有写权限的用户,这样它就无法更改。

对于某些客户,当我们无法完全删除 htaccess 时,我们通常会将 htaccess 文件设置为由管理员级别的用户拥有,并设置 chmod 644。这可以防止日常网站管理员更改文件。

相关内容