機器的任何合法用戶都可以將.php
文件或其他任何他們想要的文件寫入該廣泛打開的目錄。 A 777
目錄在共享主機上幾乎沒有位置。 (/tmp
有時可能1777
,設置該目錄的粘滯位 - 只允許一個文件所有者刪除文件目錄通常情況下,777
意味着任何人都可以刪除目錄中的所有文件,但/tmp
具有絕對。在共享主機環境中失寵,因爲它本質上是不安全的。)
所以:你是機器上唯一的用戶嗎?或者這臺機器與其他人共享?此機器除了Web服務器之外還運行其他任何服務嗎?如果是這樣,那些其他服務也可能代表一個可能的攻擊媒介。
此外,如果您的目錄上的權限設置爲777
我不知道您運行的PHP文件的安全性如何 - 我見過許多人運行不安全的PHP腳本,允許攻擊者修改每個整個網絡服務器上的HTML文件,以感染瀏覽網站的用戶。 (是的,很多,超過一小撮)
這就是爲什麼無論您的Web服務器運行的用戶帳戶都不應擁有網站的任何文件 - 靜態頁面和動態頁面。 Web服務器應該只有足夠的寫入權限才能寫入它的access.log
,error.log
,並與數據庫服務器交談。任何additional privileges beyond this都會使您的某個腳本中的其他良性錯誤變得容易成爲一種可利用的漏洞,使您的站點可用於攻擊他人。
777
是一個壞主意。修復。確保您的Web服務器不具有任何Web內容的寫入權限。確保服務器上沒有其他服務具有對您的Web內容的寫入權限。確保服務器上沒有其他用戶對您的Web內容擁有寫入權限。
更新
這是很容易,它的聲音。創建一個新的webcontent
用戶。如果您的Web服務器已經擁有一組,請使用它並將其稱爲webgroup
。如果還沒有,請創建一個新的webgroup
。 (adduser(8)
和addgroup(8)
如果你的VPS沒有自己的機制。)然後設置所有者爲您的所有網頁內容:
chown -R webcontent:webgroup /path/to/web/content
修復權限:
find /path/to/web/content -type d -print0 | xargs -0 chmod 750
find /path/to/web/content -type f -print0 | xargs -0 chmod 640
然後確保你的Web服務器使用Group webgroup
指令來確保它仍然可以讀取它需要的所有文件。
這將讓你的網絡服務器有讀取訪問所有的腳本和配置,但如果Web服務器本身被黑客攻擊,它不能修改任何它。
你是怎麼編輯Aurelio的? –
[標籤](http://stackoverflow.com/posts/8115159/revisions) – SLaks
Ahaaa,不知道那個「修訂工具」thx! :) –