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

yipeiwu_com7年前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实现可添加水印与生成缩略图的图片处理工具类。分享给大家供大家参考,具体如下: ImageTool.class.php <?php class Ima...

php实现检查文章是否被百度收录

php实现检查文章是否被百度收录

网站都有个后台,后台发表新闻与产品,发完后如果你要去查看该页面有没有被百度收录,还要通过第三方工具或直接去百度搜。最近在做SEO,每天都要查看前一天发的文章有没有被收录,就这个工作就是一...

利用PHP制作简单的内容采集器的代码

采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的。关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做...

php access 数据连接与读取保存编辑数据的实现代码

复制代码 代码如下: $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsoft Access Driver (...

PHP合并数组函数array_merge用法分析

本文实例讲述了PHP合并数组函数array_merge用法。分享给大家供大家参考,具体如下: 合并数组是把一个数组追加到另一个数组中,主要应用array_merge()函数实现 语法如下...