另一个方法禁止:Linux CentOS Suhosin禁用php5.6版本eval函数详细图文教程-CSDN博客
1.eval是什么
eval是一个语言构造器,并不是系统组件函数,因此我们在php.ini中使用disable_functions是无法禁止它的。
2.eval的危害
eval()对于php安全来说具有很大的杀伤力,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止!
3.如何禁用
3-1.下载PHP_diseval_extension
github 地址 : https://github.com/mk-j/PHP_diseval_extension
安装方法:
3-2.找到服务器当前使用的PHP、存储路径等
whereis php
3-2-1.安装多个PHP版的
服务器PHP版本是7.1
3-2-2.只安装一个PHP版的(都是安装php5.6)
或
找到phpize的执行目录
4.安装、配置
4.1回到服务器根目录,再下载
cd /
git clone https://github.com/mk-j/PHP_diseval_extension.git
下载文件在这里:
4.2 运行
cd /PHP_diseval_extension/source
//使用PHP安装路径的phpize 执行一下命令
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
问题1:提示:bash: ./configure: 权限不够
解决办法:给执行权限
再运行
./configure --with-php-config=/usr/local/php/bin/php-config
4.3 安装
make
php.ini 搜索:proc_open
先删除,安装成功后再回来
make install
成功,
5 禁止eval函数,在php.ini中加上
extension=diseval.so
重启php-fpm服务即可
service php-fpm restart
测试确定是禁止,运行下面代码,
<?php
eval("echo'hello world';");
?>
如果能输出:hello world,说明没有禁用,
如果网页什么都看不到,报错,说明正确,禁用了