2009-10-16 92 views
3

我已經看到很多上傳表單被黑客攻擊,一些上傳的文件有一些非常好的安全檢查(至少我是這麼認爲的),但仍有人設法上傳一個PHP文件。設置上傳文件夾777權限是否安全?

我想知道:是否有上傳文件的上傳文件夾中有777個權限?我正在考慮使用HTTP PUT。

回答

6

一般情況下,777約爲不安全,因爲它得到......這意味着任何人都可以讀取和寫入您的文件。

如果您允許上傳的文件在您的服務器上運行,那麼HTTP PUT本質上不會比HTTP POST更安全。

總的來說,如果你的允許執行任意文件,你需要在服務器端做很好的文件檢查,並且在服務器上使用chroot會是明智的。

權限方面,我通常設置Web服務器用戶擁有的任何Web訪問權限爲644。

1

您不需要,也不應該具有上傳文件夾的777權限。它應該足夠讓它只能讀取和寫入運行Web服務器的用戶(使用apache/debian,通常是www-data)。此外,您應該關閉(例如,通過.htaccess)您不想在此文件夾中發生的任何事情,例如執行PHP腳本(因此即使發生用戶上載PHP也無法執行)。 HTTP PUT不會改變您的777問題,導致該文件在上傳後仍然存在。

2

文件夾權限只是爲了確保您的httpd/Apache用戶可以寫入該文件夾。 其實你不需要爲你的存儲文件夾chmod 777。只要確保將所有者設置爲root並將其設置爲您正在運行的Apache/httpd用戶,或者只需將文件夾所有者設置爲您的Apache用戶即可。

chmod 774 /upload/folder:對所有者和組可寫,其他人剛剛閱讀。

PHP:如果該文件夾以某種方式引用用戶文檔根文件夾,則可以禁用該特定虛擬主機的PHP引擎。

如果該文件夾是您的系統/應用程序文檔根文件夾的一部分,那麼編輯 .htaccess文件並使用removeHandler Apache指令可能會有效。