在手冊中,我可以看到它講述了一些有關安全原因的內容,但我不太明白什麼是有問題的情況。PHP - 爲什麼使用move_uploaded_file而不是重命名?
此功能檢查,以確保由filename指定的文件是 有效的上傳文件(即它是通過PHP的HTTP POST 上傳機制上傳)。如果該文件有效,它將被移動到目的地給出的 文件名。
如果有任何上傳文件完成任何操作可能會將其內容泄露給 用戶,甚至是同一系統上的其他用戶,則此類檢查尤爲重要。
因此它確保它是通過PHP上傳的,但如果它不檢查,會發生什麼?可以透露哪些信息,以及如何?
有人可以解釋這一點嗎?一個例子會很棒。
顯然,文件內容本身和文件名。想象一下php允許上傳到通過http發佈的'/ img'文件夾中。該圖像將可用_before_ php可以進一步處理它,保護它,驗證其內容和名稱,重命名它。 – arkascha
@arkascha但那不是我的問題。你可以驗證所有必要的東西,然後使用'rename'而不是'move_uploaded_file'。 – HtmHell
但是,如果您只需要重命名該文件,該文件就已經位於相同的物理位置。具有所有潛在的安全隱患。注意:這不一定是不安全的。但可能有些人會實施不安全的設置。這就是爲什麼選擇另一種解決方案。順便說一句,爲什麼這很重要? – arkascha