2010-06-19 117 views
3

我允許人們上傳他們的項目文件,我收緊了我的安全性,但我只需要簡單點。我怎樣才能停止執行他們上傳的子目錄中的任何文件?PHP:允許用戶上傳.php文件,我如何阻止它們運行?

我想.htaccess,但我需要爲每個新的子目錄(我認爲)生成一個,我是否需要取消當前的代碼並使用.php文件發送頭文件來強制DL文件而不是運行?

您認爲這是一個簡單而安全的解決方案嗎?它只是上傳到像uploads/~foo/bar.html這樣的子目錄,它看起來很不錯,所以如果它能保持這種格式,它會很好。

+0

爲什麼downvote?它可能是重複的,但是然後搜索原始並投票結束。 – 2010-06-19 09:39:09

回答

0

uploads/.htaccess將這個:

RemoveType應用程序/ X的httpd - PHP .PHP

這將爲所有子文件夾的工作。另外請確保您不要在用戶文件夾中解析.htaccess。這可以通過主服務器配置中的AllowOverride None來完成,或者可以通過首先不允許上傳.htaccess文件來完成。

+0

非常感謝您,我認爲並確實不允許.htaccess上傳,但allowoverride會添加我想要的安全。 非常感謝! – 2010-06-19 09:43:23

+0

其實,我怎麼會允許這不會影響upload.php我在那裏?笑lol – 2010-06-19 09:49:50

+0

其實不用擔心!我找到了一個沒有任何內容的目錄,我將把腳本放在那裏。 – 2010-06-19 09:51:12

0

舉例來說,如果這些上傳的文件在目錄中爲「上傳」和子目錄:

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