Rumah >pembangunan bahagian belakang >tutorial php >PHP中的file_put_contents函数详解

PHP中的file_put_contents函数详解

小云云
小云云asal
2018-01-02 11:41:595370semak imbas

本文主要和大家分享PHP中的file_put_contents函数详解,最近在EIS上遇到一道文件上传的题,发现过滤了911d718d7058e1386872f9c05bfc9d11

于是我么可以传入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的区别

Atas ialah kandungan terperinci PHP中的file_put_contents函数详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn