我在Apache的httpd.conf文件中实现了一个PHP auto_prepend_file来密码保护服务器上的每个页面。我们假设前置文件已正确编码和保护。使用auto_prepend_file方法是否存在严重的安全风险?我担心这会打开某种跨脚本攻击或访问可能会欺骗。谢谢你的帮助:)
在httpd.conf中:
php_value auto_prepend_file "path/to/application/auth/include/secure.inc"
答案 0 :(得分:2)
只要您的脚本die()
正确用户未经过身份验证(在header()
重定向之后,非常重要!),我就可以看到这个问题没有根本问题。
manual并没有太多理由担心(强调我的):
包含文件就像使用require()函数调用它一样,因此使用了include_path。
小心始终使用绝对路径以避免相对路径出现故障。
我能想到的唯一攻击是在目录根目录下的某处注入.htaccess
文件,通过设置取消INI设置
php_value auto_prepend_file none
所以你应该注意不要接受用户上传文件的文件名而不进行过滤,例如。
答案 1 :(得分:1)
我的apache日志显示尝试访问我的服务器(如IP掩码):
??。?? ??。?? - - [10 / Sep / 2012:05:16:29 +0200]“POST /?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../ ../../../../../../../../../../../etc/passwd%00%20-n/?-d%20allow_url_include%3DOn+ -d%20auto_prepend_file%3D ../ ../../../../../../../../../../../etc/passwd%00%20-n HTTP / 1.1“301 895 “ - ”“Mozilla / 5.0”
这清楚表明黑客正在使用auto_prepend_file和allow_url_include。