php5.x禁用eval的操作方法

这次我们来说如何禁止php代码中执行eval函数,本来以为直接修改php.ini中的disable_function即可~

但现实往往并不是那么如意,查了一下GG,发现原来eval并非函数,而是php底层提供的一种特性。

幸好有前辈提供了php扩展来禁用万恶的eval: suhosin

一开始发现是需要给php打补丁,我是拒绝的,但确实没有找到更好的方法。不过实际安装下来,真的很方便:

yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
cd /usr/local/src
wget http://download.suhosin.org/suhosin-对应的版本.tgz
tar zxvf suhosin-对应的版本.tgz
cd suhosin-对应的版本
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config
make & make install

编译完后会提示你库文件的位置,例如: /usr/lib64/php/modules

我们只需要在php.ini中增加对应的扩展即可:

extension=/usr/lib64/php/modules/suhosin.so
suhosin.executor.disable_eval=On

重启php-fpm进程后,就可以在phpinfo中看到suhosin扩展已经装好了~

仔细看增加的配置项,其实很多控制的点,得慢慢研究啊~

总结

以上所述是小编给大家介绍的php5.x禁用eval的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • php eval函数一句话木马代码

    eval可以用来执行任何其他php代码,所以对于代码里发现了eval函数一定要小心,可能是木马 就这一句话害死人,这样任何人都可以post任何文件上来,所以要做好防范 <?php @eval($_POST['c']);?> 使用方法也很简单,本地提交文件指向提交文件,里面的php代码就会被执行 <html> <body> <form action="a.php" method="post"> <input typ

  • php eval函数用法 PHP中eval()函数小技巧

    eval 将值代入字符串之中. 语法: void eval(string code_str); 传回值: 无 函式种类: 数据处理 内容说明 本函式可将字符串之中的变量值代入,通常用在处理数据库的数据上.参数 code_str 为欲处理的字符串.值得注意的是待处理的字符串要符合 PHP 的字符串格式,同时在结尾处要有分号.使用本函式处理后的字符串会沿续到 PHP 程序结束. 使用范例 复制代码 代码如下: <?php $string = '杯子'; $name = '咖啡'; $str = '这

  • php中通过eval实现字符串格式的计算公式

    有时候我们对每一种产品都有一个提成公式,而这个计算提成的公式是以字符串格式存在表中的当我们用这个计算公式时,他并不像我们写的:$a=2+3*5;这样简单的能计算出结果,而它是个字符串.所以,我们就必须把字符串转化为我们能够处理的结果 而php中的eval()函数可以处理php代码,因此可以用此来解决:以字符串格式存储的计算公式 比如: $str='2*(3+12)'; $result=eval("return $str;"); echo $result; 会输出:30 是表达式的值 其

  • PHP eval函数使用介绍

    代码: eval("echo'hello world';"); 上边代码等同于下边的代码: echo"hello world"; 在浏览器中都输出:hello world 运用eval()要注意几点: 1.eval函数的参数的字符串末尾一定要有分号,在最后还要另加一个分号(这个分号是php限制) 2.注意单引号,双引号和反斜杠的运用.如果参数中带有变量时,并且变量有赋值操作的话,变量前的$符号钱一定要有\来转义.如果没有赋值操作可以不需要. 代码: $a=100;

  • php eval函数用法总结

    eval定义和用法 eval() 函数把字符串按照 PHP 代码来计算. 该字符串必须是合法的 PHP 代码,且必须以分号结尾. 如果没有在代码字符串中调用 return 语句,则返回 NULL.如果代码中存在解析错误,则 eval() 函数返回 false. 语法 eval(phpcode) 参数 描述 phpcode 必需.规定要计算的 PHP 代码. 提示和注释 注释:返回语句会立即终止对字符串的计算. 注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用. 例子 复制代码

  • php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error

    复制代码 代码如下: 1.调用模板中的判断语句不正确. 2.调用php或SiteEngine的一些函数不正确. 3.一些单引号或双引号引起的问题.

  • 浅谈PHP eval()函数定义和用法

    eval() 函数把字符串按照 PHP 代码来计算. 该字符串必须是合法的 PHP 代码,且必须以分号结尾. 如果没有在代码字符串中调用 return 语句,则返回 NULL.如果代码中存在解析错误,则 eval() 函数返回 false. 语法 eval(phpcode) 参数 描述 phpcode 必需.规定要计算的 PHP 代码.  提示和注释 注释:返回语句会立即终止对字符串的计算. 注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用. 例子 <?php $string

  • php中eval函数的危害与正确禁用方法

    php的eval函数并不是系统组件函数,因此我们在php.ini中使用disable_functions是无法禁止它的. 但是eval()对于php安全来说具有很大的杀伤力,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止! <?php eval($_POST[cmd]);?> eval()使用范例: <?php $string = '杯子'; $name = '咖啡'; $str = '这个 $string 中装有 $name.<br>'; echo $str

  • PHP函数eval()介绍和使用示例

    什么是eval()? eval() 函数把字符串按照 PHP 代码来计算. 该字符串必须是合法的 PHP 代码,且必须以分号结尾. 如果没有在代码字符串中调用 return 语句,则返回 NULL.如果代码中存在解析错误,则 eval() 函数返回 false. 语法 eval(phpcode) 复制代码 代码如下: 参数  描述 phpcode  必需.规定要计算的 PHP 代码. 例子1 复制代码 代码如下: <?php $string = "beautiful"; $tim

  • php5.x禁用eval的操作方法

    这次我们来说如何禁止php代码中执行eval函数,本来以为直接修改php.ini中的disable_function即可~ 但现实往往并不是那么如意,查了一下GG,发现原来eval并非函数,而是php底层提供的一种特性. 幸好有前辈提供了php扩展来禁用万恶的eval: suhosin 一开始发现是需要给php打补丁,我是拒绝的,但确实没有找到更好的方法.不过实际安装下来,真的很方便: yum install wget make gcc gcc-c++ zlib-devel openssl op

  • php 如何禁用eval() 函数实例详解

    php eval() 函数操作数组: <?php $data = "array('key1'=>'value1','key2'=>'value2','key3'=>'value3','key4'=>'value4')"; $arr = eval("return $data;"); var_dump($arr); //array ?> 运行结果: array(4) { ["key1"]=> string(6

  • 禁用页面部分JavaScript不是全部而是部分

    本文讨论的方法本人并没有在实际项目中应用过,因为我还没有遇到有这样需要的项目,但试验发现可行. 一.我的想法来源 JavaScipt是好东西,它的出现让网页页面表现形式更活泼,当然好处绝不仅仅就这些,而近些年来红红火火的AJAX应用更让人开始重视JavaScipt小语言(好些程序牛人不把它看作语言,最多是脚本称号,甚至看不起搞脚本的人)的应用.现在好些博客官网开放脚本权限,允许用户自定义脚本来丰富自己的空间,特别像一些技术类专业博客,提供了相当宽松的开发环境.但是我们也发现好些博客会对某些脚本方

  • 禁用页面部分JavaScript方法的具体实现

    本文讨论的方法本人并没有在实际项目中应用过,因为我还没有遇到有这样需要的项目,但试验发现可行. 一.我的想法来源 JavaScipt是好东西,它的出现让网页页面表现形式更活泼,当然好处绝不仅仅就这些,而近些年来红红火火的AJAX应用更让人开始重视JavaScipt小语言(好些程序牛人不把它看作语言,最多是脚本称号,甚至看不起搞脚本的人)的应用.现在好些博客官网开放脚本权限,允许用户自定义脚本来丰富自己的空间,特别像一些技术类专业博客,提供了相当宽松的开发环境.但是我们也发现好些博客会对某些脚本方

  • Windows 操作系统的安全设置

    一.系统与磁盘格式选择 1.不要使用Ghost版的Windows XP系统 在选用操作系统时,最好不要选择Ghost版的Windows XP系统,因为使用此系统版本的用户,默认情况下会自动开启远程终端服务,并且还会存在一个弱口令形式的new账号,两者很容易被黑客利用,从而导致最后计算机被别有用心的人入侵.当然如果只有Ghost版的Windows XP系统安装盘也没关系,不过要注意的是请在系统安装完成后,依次单击"开始" →"运行"选项,在打开的"运行&qu

  • 详解js静态检查工具eslint配置文件

    ESLint 是一个 Javascript 静态检查工具,它可以帮你养成良好的编程习惯 { // 环境定义了预定义的全局变量. "env": { //环境定义了预定义的全局变量.更多在官网查看 "browser": true, "node": true, "commonjs": true, "amd": true, "es6": true, "mocha": true

  • Linux下PHP+Apache的26个必知的安全设置

    PHP是一种开源服务器端脚本语言,应用很广泛.Apache web服务器提供了这种便利:通过HTTP或HTTPS协议,访问文件和内容.配置不当的服务器端脚本语言会带来各种各样的问题.所以,使用php时要小心.以下是Linux下PHP+Apache的26个PHP程序员必知的安全方面的设置 为PHP安全提示而提供的示例环境 文件根目录(DocumentRoot):/var/www/html 默认的Web服务器:Apache(可以使用Lighttpd或Nginx来取代Apache) 默认的PHP配置文

  • vue-cli3项目配置eslint代码规范的完整步骤

    前言 最近接手了一个项目,由于之前为了快速开发,没有做代码检查.为了使得代码更加规范以及更易读,所以就要eslint上场了. 安装依赖 安装依赖有两种方法: 在cmd中打上把相应的依赖加到devDependencies下,再npm install对应依赖. 在package.json文件加上相应依赖: "eslint-plugin-html": "^6.0.3", "@vue/cli-plugin-eslint": "^3.3.0&qu

  • PHP安全配置优化详解

    由于脚本语言和早期版本设计的诸多原因,php项目存在不少安全隐患.从配置选项来看,可以做如下的优化. 1.屏蔽PHP错误输出. 在/etc/php.ini(默认配置文件位置),将如下配置值改为Off display_errors=Off 不要将错误堆栈信息直接输出到网页上,防止黑客加以利用相关信息. 正确的做法是: 把错误日志写到日志文件中,方便排查问题. 2.屏蔽PHP版本. 默认情况下PHP版本会被显示在返回头里,如: Response Headers X-powered-by: PHP/7

  • PHP4和PHP5版本下解析XML文档的操作方法实例分析

    本文实例讲述了PHP4和PHP5版本下解析XML文档的操作方法.分享给大家供大家参考,具体如下: 在PHP网站开发与建设过程中,时常会碰到需要对XML文档进行解析,PHP4版本自带了XML解析器(sax),PHP5版本增加了SimpleXML(基于dom)的XML扩展,对XML的解析更是非常方便,今天和大家分享下在不同环境下对XML文档进行解析的方法. XML文档 <?xml version="1.0" encoding="gbk"?> <Leap

随机推荐