2013-02-28 185 views
2

CI user guide有這樣一行:正確的文件夾上傳權限

你需要一個目標文件夾爲您上傳的圖片。在你的CodeIgniter安裝的根目錄下創建文件夾 叫上傳和 設置爲777

其文件的權限如何安全是當我真正開發Web應用程序?例如:社交網絡,我想上傳用戶的個人資料照片。當用戶想要上傳私人照片時,我想我會遇到隱私問題。

+0

保持上傳文件夾不在公共訪問中。然後製作一個控制器方法,再次檢索文件,如http://ellislab.com/codeigniter/user-guide/helpers/download_helper.html所述 - 您還可以控制誰在下載更安全的文件。 – jtheman 2013-02-28 10:41:27

回答

3

根據您想要的安全級別,777可能不是最好的選擇(這是最簡單的)。 Web服務器運行的用戶數量與該文件夾的rwx數量相同,如果您想確保安全,該文件夾不應位於您的webroot下。

這意味着,如果web文件在/ home/mysite /(例如/home/mysite/index.html映射到http://mydomain.com/index.html),那麼上傳文件夾應該是/ home/uploads。

您的應用程序可以使用代碼通過系統路徑(/ home/uploads)訪問文件,但是沒有人可以從互聯網上直接訪問它。

或者,如果你不能(例如,因爲你是一個共享的主機上),你可以使用.htaccess(放置在上傳文件夾)達到相同的效果,通過將這些規則做了以上:

Deny from all 
Options None 
Options +FollowSymLinks 

(請注意,再次,您的應用程序將需要使用系統路徑,因爲Apache不會直接提供這些文件)。

1

您也可以使用.htaccess來拒絕對您允許的文件夾的訪問。至少我也和我一樣,沒有在.htaccess中訪問的目錄不能提供給用戶。

另一種安全的方法是使用/文件夾外的文件夾/ p​​ublic_html/ 該文件夾外的目錄很難從外部訪問。