PHP中使用addslashes函数转义的安全性原理分析

yipeiwu_com5年前PHP代码库

本文实例讲述了PHP中使用addslashes函数转义的安全性原理分析。分享给大家供大家参考。具体分析如下:

先来看一下ECshop中addslashes_deep的原型

复制代码 代码如下:
function addslashes_deep($value) {
    if (empty($value)) {
        return $value;  //如为空,直接返回;
    } else {
        return is_array($value) ? array_map('addslashes_deep', $value): addslashes($value);
    }  //递归处理数组,直至遍历所有数组元素;
}

addslashes_deep函数本身没有问题,但使用时得注意一点
恰好今天也是在网上看到了有人发了关于使用这个函数使用的BUG注入漏洞
这个函数在引用回调函数addslashes时,只对数据的值进行转义,所以如果使用者在此过程中引用数组的键进行特定处理时,存在$key注入风险,此时可更改addslashes_deep函数,使其同时对键值进行转义,或者使用时明确不引用键内容。

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

PHP分页效率终结版(推荐)

这里仅展示出设计思路,具体安全问题,是否同步更新等可根据具体需求添加修改:以前人们常用的PHP分页技术,通常都需要先统计出数据库中总信息条数才能判断出总页数并对其进行分页,,也就是说,每...

PHP XML error parsing SOAP payload on line 1

WebService,想必大家都比较熟悉,是由“服务提供方”向“服务调用方”提供服务的一种方式。里面有几项关键的技术: XML:描述数据的标准方法 SOAP:简单对象访问协议,用于信息交...

PHP中常见的缓存技术实例分析

本文实例分析了PHP中常见的缓存技术。分享给大家供大家参考。具体如下: JBLOG在开发的过程中,对性能的优化做了不少工作。为了尽量减少不必要的数据库查询,我对一些数据进行了缓存和静态化...

Drupal7 form表单二次开发要点与实例

请记得收藏此文,在你进行Drupal 7 custom module时,经常会用到的form 表单的跳转或重载。主要汇总三个要点: 1.页面提交后,经过#submit处理后,需要redi...

php-accelerator网站加速PHP缓冲的方法

http://php-accelerator.co.uk/ 可以下载,是zend的强劲对手。是免费的。我已经在用啦。效果还不错。 修改 PHP.ini 加上...