最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

is_uploaded_file函數(shù)引發(fā)的不能上傳文件問題

 更新時間:2013年10月29日 16:20:11   作者:  
不能上傳文件,都返回失敗。經(jīng)過排查發(fā)現(xiàn)是PHP中的is_uploaded_file函數(shù)在搗鬼,下面是具體的處理方法,有類似情況的朋友可以參考下
起因:

在一個項目中,接到用戶反饋說其所有客戶不能上傳文件,都返回失敗。經(jīng)過排查發(fā)現(xiàn)是PHP中的is_uploaded_file函數(shù)在搗鬼。

細節(jié)分析:

在正常情況下,通過PHP 上傳文件 ,需要通過is_uploaded_file函數(shù)來判斷文件是否是通過 HTTP POST 上傳的,這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,例如 /etc/passwd。
而本次遇到的問題是本來應該是C:/WINDOWS/Temp/php99.tmp這樣的tmp_name,卻變成了C://WINDOWS //Temp//php99.tmp這種,導致is_uploaded_file函數(shù)返回錯誤的信息。

處理方式:

在加上如下代碼后,問題解決。
$file['tmp_name'] = str_replace('////', ‘//', $file['tmp_name']);
注意,“////”實際字符串就是兩個/,其他兩個是用來表示轉義的。

深入研究:

為什么在默寫特定的環(huán)境下會出現(xiàn)這種情況呢,我們來看如下分析:
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
在PHP的默認配置中magic_quotes_gpc是On的,而打開了magic_quotes_gpc參數(shù)的PHP環(huán)境會自動對GET/POST /Cookie添加addslashes效果。注意,并不會為$_FILES添加addslashes效果。
而當magic_quotes_gpc是Off的時候,由于為$_FILES數(shù)組添加了addslashes作用,反而出現(xiàn)了問題。也就在 magic_quotes_gpc是Off的PHP環(huán)境下都會出現(xiàn)此問題。

順帶說句,SVN上的MooPHP代碼已經(jīng)修復此問題。

is_uploaded_file函數(shù)解析:

判斷文件是否是通過 HTTP POST 上傳的
bool is_uploaded_file ( string $filename )
如果 filename 所給出的文件是通過 HTTP POST 上傳的則返回 TRUE。這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,例如 /etc/passwd。 這種檢查顯得格外重要,如果上傳的文件有可能會造成對用戶或本系統(tǒng)的其他用戶顯示其內容的話。

為了能使 is_uploaded_file() 函數(shù)正常工作,必段指定類似于 $_FILES['userfile']['tmp_name'] 的變量,而在從客戶端上傳的文件名 $_FILES['userfile']['name'] 不能正常運作。

相關文章

最新評論

昌邑市| 建湖县| 岚皋县| 休宁县| 清丰县| 阿瓦提县| 漳州市| 邹城市| 炉霍县| 阳谷县| 肥东县| 廊坊市| 八宿县| 金寨县| 航空| 普兰店市| 永丰县| 滦平县| 兴业县| 甘孜| 平顶山市| 大港区| 浦北县| 保定市| 锦州市| 靖西县| 乃东县| 锡林浩特市| 岫岩| 钟山县| 石城县| 阿尔山市| 永昌县| 荃湾区| 新沂市| 龙口市| 黄大仙区| 林口县| 禹城市| 壤塘县| 南江县|