「最重要的保護措施是將上傳的文件保存在用戶無法直接通過直接URL訪問的位置,這可以通過將上傳的文件存儲在Web根目錄之外或配置網絡服務器拒絕訪問上傳目錄上傳文件安全>>限制名稱和擴展名不夠? (無法重命名或移動文件)
另一個重要的安全措施是使用系統生成的文件名而不是用戶在文件系統上存儲文件時提供的名稱,這將防止本地文件包含攻擊而且用戶不可能」
我明白了這一點,但是做任何類型的文件名操縱的 - 我提供的選項WordPress用戶將文件上傳到自己的形象目錄,所以我不能t做這些afaik中的任何一個。這些文件需要進入images目錄,並命名爲他們選擇的名稱。
這裏是我到目前爲止做:
1)只允許用一個擴展名的文件,並且擴展名必須是從信任列表中。
2)只允許名稱的第一部分包含字母數字,空格和下劃線,並且少於30個字符。
3)不允許與名爲.htaccess要上載的文件
4)僅允許上載管理員訪問並使用WP隨機數
5)檢查mime類型
6)檢查文件大小
一些問題我已經是:
如果我否認上傳名爲」的.htaccess'的任何文件和我否認任何文件有ith .php擴展名,不應該阻止某人上傳嵌入了.php代碼的圖像文件嗎?
我明白,我可以使用PHP沒有惡意代碼複製圖像,但我打算允許的.ttf文件和.css文件上傳也是如此。
我可以掃描這些文件與PHP腳本問號等,這是明智的?如果是的話,我會在這之外尋找什麼?
如果我只允許管理員訪問並使用隨機數和上述方法時許,如何安全是我的代碼,並是他們認爲我應該做其他事情?
任何幫助,非常感謝!
感謝您的支持。我將代碼作爲wp主題的擴展功能進行分發。我將不得不要求我的用戶這樣做?我的意思是這不能以編程方式完成,對嗎? – gregpress