簡體   English   中英

我需要讓我的網站用戶上傳圖片 - 我可以在不將文件夾權限設置為777的情況下執行此操作

[英]I need to enable users of my site to upload images - can i do it without setting the folder permissions to 777

所以,基本上問題出在標題和更詳細的場景中:

我有一個用PHP編寫的站點后端(在linux服務器上 - centos 6),我實際上只有2個用戶可以訪問它。 他們需要能夠通過某種形式上傳圖像。 所以,我制作了簡單的上傳腳本,但不管是什么(或者無知要知道:/),上傳僅適用於設置為777的文件夾權限,所以我的問題是這樣可以,或者我應該實現更好的'在這種情況下的常見做法?

您不需要777處的目錄權限。您需要確保Web服務器用戶可以寫入該目錄,這意味着使其由Web服務器用戶擁有,或者由其組設置為的其他用戶擁有Web服務器用戶和組可寫權限。

因此,如果您的Web服務器用戶是例如www-data (其他常見的可能性包括apache, httpd, www ):

# Set ownership to the web server user
chown www-data uploads_dir
# and make it writable by the web server user
# could also be 755 (readable by others)
chmod 700 uploads_dir

或者,如果它必須由您的帳戶用戶(例如,在共享主機上)保留,請將該組設置為Web服務器用戶:

chown youruser:www-data uploads_dir
# and make it group-writable:
chmod 775 uploads_dir

最重要的是,將777(全局可寫)權限分配給目錄通常不是一個好主意。 此外,理想情況下, uploads_dir應放在Web服務器的文檔根目錄之外,因此它不是可用的vit HTTP請求。

您還可以使用suphp之類的東西以用戶身份運行php腳本,同時保留讓文件夾不能由任何其他用戶或組寫入的功能。

但是,您需要對您的Web服務器進行管理訪問。

解決方案是使用FastCgi。

這使得新文件和目錄由同一用戶和組擁有。

FastCgi存在性能損失,但是由於它限制了php,因此您獲得了一些額外的安全性。 如果您托管多個用戶的多個網站,這可能是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM