2011-09-30 71 views
1

我正在開發基於PHP的網站。在管理員中有一個部分檢查表單字段,並根據該字段查找服務器上的文件夾。該文件夾將位於子目錄中。如果它不存在,則需要創建它。之後,以前存在與否,PHP將文件寫入文件夾。PHP/CHMOD問題

這些文件夾將保存將在主站點上查看和/或下載的圖像和PDF文件。

這裏是一個示例目錄結構:merchants/east/user123 在上面的商家中,east肯定會存在,user123可能存在或以其他方式創建。

鑑於這些信息我的問題是關於文件夾權限。

  • 應該將文件夾設置爲最佳安全性。
  • 我應該在操作過程中將它們打開得更寬一些,然後在完成某些更安全的事情後chmod它們(使用PHP)
  • 上級文件夾應設置爲什麼?

回答

1

770將是一個安全的文件下注。將其設置爲不允許任何公共訪問。我將在PHP中實現某種文檔傳遞系統。 PHP將能夠訪問非公共文件,然後將它們發送給用戶。

上層文件夾可以設置爲相同。

更新

正如其他人所說,你可以輕鬆地將它們chmod命令600沒有任何問題。這是處理它的更安全的方式(防止系統上的其他用戶訪問文件)。它也省略了「執行」,這對於文件讀取來說是不需要的。除非有明確的理由,否則離開臨時演員是我個人的做法。

+0

如果只通過php腳本訪問,爲什麼不把它設置爲700?還是750? –

1

上層文件夾需要具有對apache用戶的讀取,寫入和執行權限,頂層文件夾可以由apache擁有,並且具有755的權限以允許web服務器讀取,寫入和列出文件。

如果您特別擔心Web服務器上的其他本地用戶或服務看不到此目錄中的文件,您可能會考慮權限750或700。

對於文件權限:644或600作爲傳統,他們不需要執行權限。

一個很好的折衷方案可能是將750用於目錄,將640用於擁有者設置爲apache的文件,並更改組(chgrp),以便文件的組允許訪問通常您編輯網站文件的用戶用。

我想不出任何PHP腳本增加,然後減少權限的顯着優勢。

我認爲你應該考慮@ chunk的關於將上傳文件完全保留在公共html目錄中的評論,並通過文件傳遞腳本將它們提供回來。否則,您需要仔細驗證文件的內容並收緊該特定目錄的apache配置 - 也許使用一些mimetype檢查來確保文件確實是docs和pdf。