检测PHP中何时忽略.htaccess

时间:2013-07-25 18:30:20

标签: php apache2

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

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

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

  • 安全性;
  • 异常预防;
  • 调试(到目前为止,它从未显而易见)。

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

2 个答案:

答案 0 :(得分:4)

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

SetEnv HTACCESS_WORKING here_i_am

并在PHP中检查:

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

你可以合理地确定它正在发挥作用。

答案 1 :(得分:0)

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