鍍金池/ 問(wèn)答/PHP/ is_uploaded_file為什么可以提到安全作用?

is_uploaded_file為什么可以提到安全作用?

我看文檔上說(shuō):

如果 filename 所給出的文件是通過(guò) HTTP POST 上傳的則返回 TRUE。這可以用來(lái)確保惡意的用戶無(wú)法欺騙腳本去訪問(wèn)本不能訪問(wèn)的文件,例如 /etc/passwd。

這種檢查顯得格外重要,如果上傳的文件有可能會(huì)造成對(duì)用戶或本系統(tǒng)的其他用戶顯示其內(nèi)容的話。

這部分我沒(méi)看明白,如果不用這個(gè)函數(shù)過(guò)濾,惡意用戶如何訪問(wèn)本不能訪問(wèn)的文件?大佬能否給舉例解釋一下?

回答
編輯回答
久舊酒

這個(gè)函數(shù)在php5.4以及更高版本基本無(wú)實(shí)際意義,但依然保留。早期版本PHP有一個(gè)register_globals配置項(xiàng),會(huì)將傳入的數(shù)據(jù)全部注冊(cè)為全局變量,包括上傳的文件和GET、POST請(qǐng)求參數(shù),可能造成變量覆蓋來(lái)達(dá)到數(shù)據(jù)偽造。

2018年5月14日 20:43
編輯回答
孤慣
echo file_get_contents($_GET['path']);

http://www.xxx.com/a.php?path=/etc/passwd

2018年4月29日 00:02