-1

我正在寻找一种方法来检测Allow overridevhost 设置是否导致 .htaccess 文件被忽略。

现在我正在测试我可以在 .htaccess 中设置的一些 PHP 设置的值,但是这种检测还不够好(因为这些值也可以在 php.ini 中进行更改)。

最终目标是防止应用程序使用被忽略的 .htaccess 文件运行,原因如下:

  • 安全;
  • 异常预防;
  • 调试(到目前为止它从来都不是显而易见的)。

是否有一种安全且有保证的方法来检测 .htaccess 文件是否有效?

4

2 回答 2

4

假设 .htaccess 本身没有被锁定以排除某些覆盖,您可以设置一个环境变量:

SetEnv HTACCESS_WORKING here_i_am

并在 PHP 中检查:

if (isset($_ENV['HTACCESS_WORKING']) && ($_ENV['HTACESS_WORKING'] === "here_i_am")) {
   ...
}

您可以合理地确定它正在工作。

于 2013-07-25T18:33:47.973 回答
0

如果您有一个独立于您的应用程序的测试脚本,是的。让“安全测试人员”向自己发起一个 HTTP 请求。您可以将您发送的内容(作为客户端)与您返回的内容(接收请求时)进行比较。您将需要脚本客户端和服务器端之间的某种通信机制,这可能是一个不同的 PHP 进程。会话使这很容易。这将允许您查看重写规则或任何内容。

于 2013-07-25T20:16:15.953 回答