首頁  >  文章  >  後端開發  >  PHP中file_put_contents函數詳解

PHP中file_put_contents函數詳解

墨辰丷
墨辰丷原創
2018-05-17 13:50:423294瀏覽

file_put_contents() 函數把一個字串寫入檔案中。最近發現file_put_contents函數有一直沒注意到的問題,所以下面這篇文章主要給大家介紹了關於PHP中危險的file_put_contents函數的相關資料,需要的朋友可以參考借鑒,下面來一起看吧。

前言

最近在EIS上遇到一道文件上傳的題,發現過濾了2662232b1b716ff24a83ff64a9d5e1f8&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));
}
 
?>


相關推薦:

file_put_contents函數介紹與使用方法詳解

PHP中應該如何使用file_put_contents函數

PHP中的file_put_contents函數詳解


#

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

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