首頁 >後端開發 >php教程 >PHP中的file_put_contents函數詳解

PHP中的file_put_contents函數詳解

小云云
小云云原創
2018-01-02 11:41:595359瀏覽

本文主要和大家分享PHP中的file_put_contents函數詳解,最近在EIS上遇到一道文件上傳的題,發現過濾了f3c38c555e93476043946c3dde9e5b84

於是我麼可以傳入content[]=1c54a2ccadef45a7573e3649bdfd6f57&ext=php 這樣來繞過

# 修復方法


修正方法是使用fwrite 函數來取代危險的file_put_contents函數,fwrite函數只能傳入字串,如果是陣列會出錯回傳false

<?php 
 
if(isset($_POST[&#39;content&#39;]) && isset($_POST[&#39;ext&#39;])){
 $data = $_POST[&#39;content&#39;];
 $ext = $_POST[&#39;ext&#39;];
 
 //var_dump(preg_match(&#39;/\</&#39;,$data));
 if(preg_match(&#39;/\</&#39;,$data)){
  die(&#39;hack&#39;);
 }
 $filename = time();
 // file_put_contents($filename.$ext, $data);
 $f = fopen($filename.$ext);
 var_dump(fwrite($f,$data));
}
 
?>

相關推薦:


#有關php file_put_contents()函數的文章推薦10篇

#php怎麼實作file_put_contents追加與換行?

PHP中fwrite與file_put_contents的差異

#

以上是PHP中的file_put_contents函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn