我剛寫了保存所有傳入的文件到我的網站的上傳目錄中的PHP文件上傳處理程序。 上傳目錄可以通過網絡公開訪問,而且當前每個文件都是用數據庫生成的唯一ID重命名後直接轉儲的。 hander將允許除JS和PHP之外的任何文件類型,而不僅僅是圖像。 最終可能會有數千個文件的數量,但這需要幾年才能發生。
我的問題:
的是它在服務器上在同一目錄下所有上傳的文件是好還是壞主意,如果不是,請說明原因,並會有什麼更好的辦法?
我注意到,wordpress將它們存儲在爲日期命名的目錄中。
我可以看到唯一真正的缺點是目錄上的ls
可能是資源密集的,一旦有幾千個文件在那裏。 或者對一個目錄中的文件數量有限制,或者一個目錄(運行Linux)的總大小是多少?
有關安全略微搶先注:
上傳處理器固定以防止任何人,但登錄管理員級別的用戶上傳文件,也不會拯救PHP或JS文件(如ATLEAST據我可以可靠地使用$_FILES
數組中的type
屬性對它們進行可靠測試),因爲這些可以由服務器執行。我計劃實施的另一個安全措施是阻止對某些文件類型的請求的文件.htaccess
,只是一個incase。這方面的任何說明也會受到歡迎,但這不是這個問題的一部分。
感謝你和@ethrbunny,這兩個好的建議,我會帶他們上船。我非常喜歡按類型而不是日期等來分隔文件的想法,如果我能夠可靠地檢測文件類型,那麼這就是我要去的方式。再次感謝 – jammypeach 2012-04-30 09:27:53