商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > php禁用eval,php如何禁用eval

php禁用eval,php如何禁用eval

  发布于2026-07-18 阅读(0)

扫一扫,手机访问

PHP 的 eval() 函数功能强大,但风险极高——它允许执行任意 PHP 代码,一旦被攻击者利用,后果不堪设想。很多安全配置里都会建议禁用 eval,但具体怎么操作?这里提供一个经过验证的成熟方案:通过安装 Suhosin 扩展来实现。

16a72b58cea377729ea54000d586e73c.png

具体方法分四步走:

第一步:安装编译工具
首先需要把基础环境准备好,执行以下命令安装必要的编译工具链:

yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl

第二步:安装 Suhosin 扩展
进入软件包存放目录,下载并解压 Suhosin 源码包:

cd /usr/local/src
wget http://download.suhosin.org/suhosin-0.9.33.tgz
tar zxvf suhosin-0.9.33.tgz
cd suhosin-0.9.33

然后用 phpize 生成 configure 配置文件,接着配置、编译、安装:

/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

安装完成后,终端会显示 Suhosin 模块的具体路径,比如 /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/,这个路径后面配置时需要用到。

第三步:配置 PHP 支持 Suhosin
编辑 PHP 配置文件 /usr/local/php5/etc/php.ini,在最后一行添加以下内容:

extension="suhosin.so"

第四步:测试并禁用 eval
先创建一个 phpinfo 文件来确认扩展是否加载成功:

vi /usr/local/nginx/html/phpinfo.php

然后在 phpinfo 页面中搜索 Suhosin 相关信息。确认正常加载后,在 php.ini 中继续添加以下配置,即可彻底禁用 eval

suhosin.executor.disable_eval = on

保存后重启 PHP 服务(或重启 Nginx/Apache),再测试一下,eval() 函数就会被直接拦截,无法执行任何代码。这样既保留了其他正常功能,又堵住了最危险的后门入口。

本文转载于:https://blog.csdn.net/weixin_28931737/article/details/115508420 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注