这篇文章主要知识点是关于php、eval、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
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" }
网上很多说使用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即可
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
php5.x禁用eval的操作方法
这次我们来说如何禁止php代码中执行eval函数,本来以为直接修改php.ini中的disable_function即可~ 但现实往往并不是那么如意,查了一下GG,发现原来eval并非函数,而是php底层提供的一种特性。 幸好有前辈提供了php扩展来禁用万恶的eval: suhosin 一开始发现是需要给php打补丁,我是拒绝的,但确实没有找到更好的方法。不过实际安装下来,真的很方便: yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perlcd /usr/local/srcwget http://download.suhosin.org/suhosin-对应的版本.tgztar zxvf suhosin-对应的版本.tgzcd suhosin-对应的版本/usr/bin/phpize./configure --with-php-config=/usr/bin/php-configmake & make install 编译完后会提示你库文件的位置,例如: /usr/lib64/php/modules 我们只需要在php.ini中增加对应的扩展即可: extension=/usr/lib64/php/modules/suhosin.sosuhosin.executor.disable_eval=On 重……