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

具体方法分四步走:
第一步:安装编译工具
首先需要把基础环境准备好,执行以下命令安装必要的编译工具链:
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() 函数就会被直接拦截,无法执行任何代码。这样既保留了其他正常功能,又堵住了最危险的后门入口。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8