防止执行上传的php文件?

时间:2011-05-04 15:11:01

标签: php .htaccess apache2

在我的项目中,用户可以上传任何类型的文件。我需要确保安全性,防止执行上传的文件,这些文件可以通过php解析(* .php,* .html等)

有没有办法告诉apache不要用web / uploads中的php解析任何文件,只是将它们显示为纯文本?还有什么其他选择?

3 个答案:

答案 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

快速谷歌示例: