PHP:允许为用户上传.php文件,如何防止它们运行?

时间:2010-06-19 09:31:12

标签: php security permissions

我允许人们上传他们的项目文件,我加强了我的安全性,但我只需要简单点。如何停止执行他们上传的子目录中的任何文件?

我在考虑.htaccess但是我需要为每个新子目录生成一个(我认为),我是否需要废弃当前代码并使用.php文件将标头发送到强制DL文件而不是运行?

您认为这是一个简单而安全的解决方案吗?它只是上传到像uploads/~foo/bar.html之类的子目录,它看起来很漂亮,所以如果它能保持这种格式就好了。

2 个答案:

答案 0 :(得分:0)

将其放入uploads/.htaccess

RemoveType application / x-httpd-php .php

这适用于所有子文件夹。还要确保您不解析用户文件夹中的.htaccess。这可以通过主服务器配置中的AllowOverride None来完成,也可以通过不允许首先上传.htaccess文件来完成。

答案 1 :(得分:0)

例如,如果这些上传的文件位于“uploads”目录及其子目录中:

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php [NC]
RewriteCond %{REQUEST_URI} \/uploads\/
RewriteRule ^(.*)$ index.php [F,L]