如何处理上传.php文件而不执行它们?

时间:2010-01-11 11:03:20

标签: php file-upload

我希望允许我的用户将.php个文件上传到服务器,但也希望确保这些文件对我的应用程序无害。

有什么建议吗?

谢谢。

5 个答案:

答案 0 :(得分:6)

我建议'在uploads目录中禁用脚本执行'方法。这是唯一完全安全的解决方案。

只需将此规则添加到uploads目录中的.htaccess文件:

php_value engine off

答案 1 :(得分:1)

选项1:使用不同的文件名存储它们并将原始文件名存储为元数据的一部分,例如在数据库表中。

选项2:禁用上传目录中的脚本执行。

选项3:将它们重命名为.phps(显示原始PHP的接受扩展名)

答案 2 :(得分:1)

一些解决方案:

  • 将它们重命名为.phps
  • 禁用在您的网络服务器配置中的上传目录中执行PHP

答案 3 :(得分:0)

只是不执行它们,这就够了。

确保您的应用程序不会在任何时候运行或包含用户上传的文件(例如,使用GET参数include文件而不进行任何卫生处理。

同时确保无法通过.php扩展名从外部访问上传的文件。

在正常的,中途正确编码的工作流程中,上传的.php文件无论其包含哪些代码都不会带来安全风险。

答案 4 :(得分:0)

将上传目录分开,只写,从互联网上看不到(这会阻止他们在上传后访问自己的脚本)。

然后,您可以根据自己的需要调整新脚本。