php eval() 함수는 배열에서 작동합니다.
<?php $data = "array('key1'=>'value1','key2'=>'value2','key3'=>'value3','key4'=>'value4')"; $arr = eval("return $data;"); var_dump($arr); //array ?>
실행 결과:
array(4) { ["key1"]=> string(6) "value1" ["key2"]=> string(6) "value2" ["key3"]=> string(6) "value3" ["key4"]=> string(6) "value4" }
인터넷의 많은 사람들은 eval을 비활성화하기 위해 비활성화 기능을 사용하는 것이 잘못되었다고 말합니다!
실제로 php.ini의 비활성화 함수를 사용하여 eval()을 비활성화할 수 없습니다.
eval()은 함수가 아니라 언어 구성이기 때문입니다
eval은 zend이므로 PHP_FUNCTION 함수가 아닙니다.
그렇다면 PHP에서 eval을 비활성화하는 방법은 무엇입니까?
평가를 비활성화하려면 PHP 확장 Suhosin을 사용할 수 있습니다:
수호신 설치 후 php.ini에 Suhosin.so를 로딩하고 suhosin.executor.disable_eval = on을 추가하세요
읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!