我正在寻找一种方法来检测Allow override
vhost设置是否导致.htaccess文件被忽略。
现在我正在测试我可以在.htaccess中设置的一些PHP设置的值,但是这个检测不够好(因为这些值也可以在php.ini中更改)。
最终目标是阻止应用程序使用忽略的.htaccess文件运行,原因如下:
是否有安全且有保障的方法来检测.htaccess文件是否有效?
答案 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进程。会话使这很容易。这将允许您查看重写规则或任何内容。