2012-08-23 81 views
0

我正在使用Thumbnail插件。它將拇指存儲在webroot上的文件夾中。 但是當它試圖保存拇指時,返回「不可寫入」錯誤。它的目錄權限是755。 如果我將權限更改爲777,則錯誤消失。但我在某處讀取777權限可能會導致安全問題。寫入文件夾和安全風險

我該怎麼辦?

回答

1

你可以改變所有者(例如在Linux chown www-data:www-data your/direcotry/path

chown [OPTIONS] [Owner][:[Group]] FilenameOrFoldername 

的web服務器用戶(誰執行PHP腳本的用戶)擁有的目錄,然後他有寫訪問,你可以離開權利755.

7 5 5 = RWX RX RX

- [R EAD瓦特儀式ËX ecute

第一位數=所有者
第二位數=組
第三位數=所有其他用戶

意味着只有所有者具有寫訪問(他能在這種情況下,WWW的數據用戶文件添加到目錄),該組(www-data)具有讀取和執行權限,其餘部分也具有讀取和執行權限,所以不應該有755的安全風險。

Here您有一個工具,您可以在其中計算右側 - > chmod號碼轉換

+1

這似乎是正確的解決方案,只給需要它的用戶提供正確的權限。 – bdares

0

權利被寫作所有者/組/其他人,我認爲你可以使用775權利爲你的邏輯。

0

您可以將其存儲在Web服務器(如apache或nginx)無法訪問但您的Web應用服務器(php,java servlet,無論)能夠訪問的位置,併爲其創建邏輯以從該文件夾中抓取它並將其作爲圖像提供。這樣,您可以確保用戶上傳的任何文件都不會被執行。

這會花費更多的服務器資源,所以這是你應該考慮的。

如果文件是由您的應用程序創建的,並且用戶無法直接修改它們,那麼授予它寫入權限沒有問題。

+0

糟糕的解決方案。核心處理太多。但如果不重要,那麼它是最好的。 – Anton

+0

用戶的文件是最好的,但在我的應用程序中,用戶永遠不會上傳文件。應用程序創建一個圖像和拇指,將其存儲在某個地方,並顯示給用戶 – mrdaliri