当前位置:首页 > 编程相关 > PHP > 正文内容

PHP安装Suhosin扩展禁用eval函数

martinsun5个月前 (07-05)PHP714

说明

eval函数是通过 zend 来实现的,不能用 php.ini 直接关闭掉,可以利用安装 Suhosin 扩展来禁用 eval 函数。

选择扩展版本并下载

编译安装扩展

切换到扩展源码根目录依次执行

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
  • 说明:
    • /usr/local/php/bin/phpizephpize 的路径
    • /usr/local/php/bin/php-configphp-config 的路径

配置

编辑PHP的配置文件

  • 在模块配置的位置加入
    extension=suhosin.so
    说明: 如果是 php7 ,将 suhosin.so 改成 suhosin7.so
  • 在配置文件末尾加入
    [suhosin]
    suhosin.executor.disable_eval = on

查看模块是否加载成功

php -m

如果出现 suhosinsuhosin7 则表示模块加载成功

测试是否可执行 eval 函数

新建文件 a.php , 加入下面的代码

<?php
$data = "array('key1'=>'value1','key2'=>'value2','key3'=>'value3','key4'=>'value4')";
$arr = eval("return $data;");
var_dump($arr);

保存文件,然后执行

php a.php

如果出现下面的错误,则表示禁用成功!

PHP Fatal error:  SUHOSIN - Use of eval is forbidden by configuration in a.php(4) : eval()'d code on line 1

版权声明:本文由MartinSun发布,内容供学习参考使用。

图文说明:部分图文来源于网络,如侵权请联系删除。

本文链接:https://www.sunyonghong.com/?id=57

标签: php
分享给朋友:
返回列表

上一篇:PHP非对称RSA加密算法

没有最新的文章了...

相关文章

PHP发送HTTPS网络请求报错: curl error 60

以下是curl发送https请求时,报错curl 60错误的解决方案 原因:请求配置中开启了证书校验缺少openssl证书,不建议关闭,可以参考如下配置。 步骤一:下载证书curl http://...

PHP非对称RSA加密算法

非对称加密非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。 RSA加密算法RSA是目前最有影响力的公...