PHP7.*版本安装Suhosin扩展禁用eval函数教程(宝塔面板)

此文章发布于13个月前,部分信息可能已经过时,请自行斟酌确认

PHP7.*版本安装Suhosin扩展禁用eval函数教程(宝塔面板)

服务器经常莫名其妙的被入侵一句话木马,这些一句话木马主要就是利用eval函数来达到他们的入侵目的,而eval不是PHP的系统组件函数,所以在php.ini中使用disable_functions禁止掉eval的方法都是错误的!(网上一大批这么错误的教给人的,真的是没点知识储备就乱说话),eval 函数是通过 zend 来实现的,不能用 php.ini 直接关闭掉。但我们可以利用安装Suhosin扩展来禁用eval函数,下面我详细记录一下,我的安装以及书写步骤。

下载

版本选择链接: https://www.suhosin.org/stories/download.html.
我用的php7.1,对于PHP的高版本,Suhosin扩展仅支持到了7.1以及7.2,对于新出的PHP7.3版本,目前Suhosin扩展还没有进行支持。
我安装的是suhosin7
各位同学要根据自己的PHP版本进行下载安装。

安装

我使用的宝塔面板,这里我讲述一下我的具体安装步骤:

  • 登陆宝塔面板,进入宝塔面板的【文件】页面。
  • 我在【www】文件下下面创建了一个目录,命名为【suhosin】.
  • 把我刚刚下载的依赖包上传到【suhosin】目录下,并解压。如图:

24.png

  • 进入源码目录,我的是进入到【suhosin7-master】目录下,点击【终端】按钮,宝塔面板自带的终端,在【收藏夹】按钮的左边
  • 在这我使用的终端软件为Xshell因为宝塔自带的真的是太难用了。
  • 在依赖源码目录下(对于我来说也就是【suhosin7-master】目录下)运行第一步指令/www/server/php/71/bin/phpize

2019-12-10_145347.png

  • 在此目录下继续运行指令 ./configure --with-php-config=/www/server/php/71/bin/php-config .

提示:特别注意,每个人php安装目录不一样,就算都是用的宝塔,安装的php版本不同,路径也会和我的不同。我的是PHP7.1版本路径中所以为71,请大家务必根据自己的路径去写指令。

  • 编译并安装,运行指令 make && make install .
  • 进入宝塔面板的php设置页,选择配置文件,在配置文件【也就是php.ini中】加入如下代码:
extension = suhosin7.so
suhosin.executor.disable_eval = on

注意:如果为PHP7以上版本,一定要写成extension = suhosin7.so,PHP7以下版本,写成extension = suhosin.so.

  • 查看是否安装成功php -m|grep -i OAuth
最后修改:2020 年 02 月 26 日 02 : 57 AM
如果觉得我的文章对你有用,请随意赞赏

6 条评论

  1. cyk

    php7 安装完禁用不了,phpinfo()里面suhosin.executor.disable_eval 已经不存在了,https://www.jianshu.com/p/75c9ccb68c45

    1. 晴栀
      @cyk

      我稍后更新,谢谢提醒,此扩展对php7可能兼容不足。

  2. uperr

    高版本对eval本身是不是就有点限制

  3. 刘大林

    不行禁用不了

    1. 晴栀
      @刘大林

      不会的呀,这个方法是可以禁用的。

  4. farmer

    很香的教程

发表评论