2011-04-14 60 views

回答

1

有兩個真的很明顯的:

  • 如果進行不當,文件上傳器可以允許用戶覆蓋其他人的文件 - 包括運行網站的PHP的。確保權限已設置,以便Web服務器的帳戶對任何目錄具有隻讀權限,但應寫入內容,並且該目錄中沒有任何內容可以執行。
  • 用戶可以上傳(大)足夠的文件來填充網站的磁盤配額。即使他們不能,他們也可以嘗試 - 並且在整個文件發送之後,服務器可能不會拒絕上傳,咀嚼寶貴的資源,並且可能仍然填滿驅動器(如果只是拒絕請求並刪除臨時文件)。

而這只是服務器的風險。文件可能包含可能影響其他用戶的惡意軟件。你可能會想找到一個掃描儀的東西。

我會建議如果你想讓人們上傳文件,你會發現一個預先寫好的腳本,很多其他人使用和推薦。當有人做某件您從未考慮過的事情時,滾動自己肯定會給您帶來麻煩。

+0

將這些文件從我們現有的環境中託管到亞馬遜存儲或機架空間雲存儲之類的應用程序也是可取的嗎? – AAA 2011-04-14 22:05:02

+1

如果您已經擁有它,可能需要考慮。但重要的是,服務器永遠不應該被允許編寫可執行文件或執行上傳。理想情況下,應用程序甚至不應該讀*可執行文件,以免泄漏他們所做的所有祕密(以及可能使用的密碼!),因此,如果您不想使用單獨的帳戶,不知道PHP。但是,一個體面的上傳者將會減少很多這些問題,而無需支付其他賬單。 – cHao 2011-04-14 22:13:14

+0

所以我只是要確保文件是可上傳的,但不可執行和可下載....我如何設置權限? – AAA 2011-04-14 22:20:06

2

這裏有大量的安全漏洞,允許用戶時上傳文件。阻止不需要的文件格式的潛力可以幫助限制某人能夠上傳shell並根據您的服務器進行操作的可能性。 影響服務器上信息的完整性,機密性和可用性。

也有vulns內您形式的控制,以及諸如XSS(跨站腳本)利用...允許用戶運行惡意代碼。這可能會導致在用戶環境中執行惡意代碼。

對於實際數據庫中的漏洞以及SQL注入,還有可能存在漏洞。

只是不要讓服務器執行可執行文件...

從用戶上傳大文件,利用至關重要的磁盤空間和帶寬的風險。

有用的鏈接,確保PHP上載腳本:http://www.webcheatsheet.com/PHP/file_upload.php

+0

將這些文件從我們現有的環境託管到亞馬遜存儲或機架空間雲存儲之類的應用程序也是明智的選擇嗎? – AAA 2011-04-14 22:08:07

+1

好點:是的,雲存儲將是非常有用的,但那麼他們有爭議的問題。誰擁有云中的數據?你或亞馬遜等等......取決於真實信息的保密性以及潛在的數據保護法案等。欲瞭解更多信息,請閱讀CIA Triad Model。 http://en.wikipedia.org/wiki/Information_security – Hmm 2011-04-14 22:11:11

+1

我還沒有聽說過誰擁有這些文件的爭議。誰支付帳戶的確如此。如果主機在文件中擁有任何所有權股份,他們可能不符合任何「安全港」例外 - 所以大多數主機甚至不會想到要求所有權。雖然託管協議可能會授予主機複製和分發許可證,但是它們可以存儲和發送文件,而不需要一些笨拙的起訴他們來完成他們的工作。 – cHao 2011-04-14 22:20:20

1

有一些威脅,你應該知道的:

  • 惡意軟件類病毒,蠕蟲,木馬等,特別是如果上傳的文件是由其他用戶訪問。
  • 可以在系統上執行的文件,如php-files。如果用戶可以將php文件上傳到您的webroot,他可以使用passthru(cmd)或system(cmd)等命令執行任意命令。
  • 非法內容。你不希望你的服務器上有任何非法的東西可能會讓你陷入困境。
  • 有人可以上傳HTML的文件與JavaScript,使用他們的XSS攻擊
  • ...

僅舉其中的一些。您應該查看關於無限制文件上傳的OWASP Website。你應該找到你需要的任何東西。