在我的项目中,用户可以上传任何类型的文件。我需要确保安全性,防止执行上传的文件,这些文件可以通过php解析(* .php,* .html等)
有没有办法告诉apache不要用web / uploads中的php解析任何文件,只是将它们显示为纯文本?还有什么其他选择?
答案 0 :(得分:12)
将它们全部保存在同一文件夹下,并在目录的.htaccess
文件中设置此行:
php_flag engine off
这也将处理其他漏洞,例如在.gif文件中嵌入PHP代码。
答案 1 :(得分:2)
您需要Apache SetHandler指令:http://httpd.apache.org/docs/current/mod/core.html#sethandler
这使您可以强制某个目录中的所有文件由某个处理程序处理。所以有些东西:
<Location /web/uploads>
SetHandler None
</Location>
应该做你想做的事。
答案 2 :(得分:0)
为什么不在上传到.phps
后重命名文件扩展名?
澄清PHPS是PHP文件的源代码视图:
澄清:
file.php
=&gt; file.phps
快速谷歌示例: