服务器经常莫名其妙的被入侵一句话木马,这些一句话木马主要就是利用eval
函数来达到他们的入侵目的,而eval不是PHP的系统组件函数,所以在php.ini中使用disable_functions禁止掉eval的方法都是错误的!(网上一大批这么错误的教给人的,真的是没点知识储备就乱说话),eval
函数是通过 zend
来实现的,不能用 php.ini
直接关闭掉。但我们可以利用安装Suhosin扩展来禁用eval
函数,下面我详细记录一下,我的安装以及书写步骤。
下载
版本选择链接:
https://github.com/chenxiwangluo/suhosin7?organization=chenxiwangluo&organization=chenxiwangluo
php5.6 使用下载
https://download.suhosin.org/suhosin-0.9.38.tar.gz
我用的php7.1,对于PHP的高版本,Suhosin扩展仅支持到了7.1以及7.2,对于新出的PHP7.3版本,目前Suhosin扩展还没有进行支持。
我安装的是suhosin7
各位同学要根据自己的PHP版本进行下载安装。
安装
我使用的宝塔面板,这里我讲述一下我的具体安装步骤:
- 登陆宝塔面板,进入宝塔面板的【文件】页面。
- 我在【www】文件下下面创建了一个目录,命名为【suhosin】.
- 把我刚刚下载的依赖包上传到【suhosin】目录下,并解压。如图:
- 进入源码目录,我的是进入到【suhosin7-master】目录下,点击【终端】按钮,宝塔面板自带的终端,在【收藏夹】按钮的左边
- 在这我使用的终端软件为Xshell因为宝塔自带的真的是太难用了。
- 在依赖源码目录下(对于我来说也就是【suhosin7-master】目录下)运行第一步指令
/www/server/php/71/bin/phpize
- 在此目录下继续运行指令
./configure --with-php-config=/www/server/php/71/bin/php-config
提示:特别注意,每个人php安装目录不一样,就算都是用的宝塔,安装的php版本不同,路径也会和我的不同。我的是PHP7.1版本路径中所以为71,请大家务必根据自己的路径去写指令。
- 编译并安装,运行指令
make && make install
- 进入宝塔面板的php设置页,选择配置文件,在配置文件【也就是php.ini中】加入如下代码:
extension = suhosin7.sosuhosin.executor.disable_eval = on
PHP
复制
注意:如果为PHP7以上版本,一定要写成extension = suhosin7.so
,PHP7以下版本,写成extension = suhosin.so
.
- 查看是否安装成功
php -m|grep -i OAuth
来源地址:https://blog.csdn.net/Charles_n/article/details/127888738