我的網站上有一個上傳表單。實際上我並沒有真正包含或排除文件類型。網站上傳防止黑客入侵
相反,我使用的是這樣的:
$fileUploadName = $target_dir.md5(uniqid($target_file.rand(),true)).".".$imageFileType;
這將保留該文件類型,但更改文件名隨機的一些神祕的類似790cd5a974bf570ff6a303c3dc5be90f
。
這樣黑客就不能上傳hack.php
文件,並用www.example.com/uploaded_files/hack.php
打開它,因爲它已經更改爲例如。 790cd5a974bf570ff6a303c3dc5be90f.php
。在我看來,這是完全安全的。我說得對,這樣安全嗎?
我認爲只有自動執行文件可能是一個問題。自執行文件是否存在?
應用[Kerckhoff的原理](https://en.wikipedia.org/wiki/Kerckhoffs 's_principle)「的攻擊者知道除(密碼)鍵以外的系統的所有信息「,攻擊者可能知道您使用了文件名的MD5校驗和,因此可以推斷上傳的文件名。 –
爲什麼在任何情況下都會允許執行上傳的文件? – miken32
@ miken32我不明白你的意思。當然,我想避免黑客可以上傳文件,然後執行。爲了避免這種情況,我使用md5(uniqid($ filename))來改變真正的文件名。這樣,我希望黑客不能通過瀏覽器調用和執行文件,因爲他不知道(實際)文件名。當然,如果它是一個自我執行文件,這將不起作用。但是呢。自執行文件甚至存在? – David