php为什么要禁用eval(),php正确禁用eval函数与误区介绍_PHP教程

eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。

eval()针对php安全来说具有很大的杀伤力 一般不用的情况下 为了防止

代码如下

复制代码

使用范例

代码如下

复制代码

$string = ‘杯子’;

$name = ‘咖啡’;

$str = ‘这个 $string 中装有 $name.

‘;

echo $str;

eval( “$str = “$str”;” );

echo $str;

?>

本例的传回值为

这个 $string 中装有 $name.

这个 杯子 中装有 咖啡.

或更高级点的是

代码如下

复制代码

$str=”hello world”; //比如这个是元算结果

$code= “print(‘n$strn’);”;//这个是保存在数据库内的php代码

echo($code);//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行

eval($code);//执行了这条命令

?>;

你上面的咖啡的例子了,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了.

这样的小马砸门 需要禁止掉的

网上好多说使用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即可

总结,php eval函数在php中是无法禁用的我们也只有使用插件了

www.bkjia.comtrueTechArticleeval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对ph…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值