php 如何禁用eval() 函數實例詳解


在php中eval是一個函數並且不能直接禁用了,但eval函數又相當的危險並經常會出現一些問題,今天我們就一起來看看eval函數對數組的操作及php 如何禁用eval() 函數:

1 <?php 2 $data = "array('key1'=>'value1','key2'=>'value2','key3'=>'value3','key4'=>'value4')"; 3 $arr = eval("return $data;"); 4 var_dump($arr); //array 5  
6 //array(4) { ["key1"]=> string(6) "value1" ["key2"]=> string(6) "value2" ["key3"]=> string(6) "value3" ["key4"]=> string(6) "value4" }
7 ?>

 

網上很多說使用disable_functions禁止掉eval的方法都是錯誤的!

其實eval()是無法用php.ini中的disable_functions禁止掉的 :

because eval() is a language construct and not a function

eval是zend的,因此不是PHP_FUNCTION 函數;

那么php怎么禁止eval呢?

如果想禁掉eval可以用php的擴展 Suhosin:

安裝Suhosin后在php.ini中load進來Suhosin.so,再加上suhosin.executor.disable_eval = on即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM