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


Posted in PHP onNovember 03, 2014

本文实例讲述了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的图形函数中显示汉字
Oct 09 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
discuz7 phpMysql操作类
Jun 21 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
Linux编译升级php的详细方法
Nov 04 PHP
php之Smarty模板使用方法示例详解
Jul 08 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 #PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 #PHP
php防止sql注入之过滤分页参数实例
Nov 03 #PHP
详解PHP导入导出CSV文件
Nov 03 #PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 #PHP
php过滤表单提交的html等危险代码
Nov 03 #PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 #PHP
You might like
PHP生成带有雪花背景的验证码
2006/10/09 PHP
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
大学优秀班集体申报材料
2014/05/23 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
推广普通话标语
2014/06/27 职场文书
租房安全协议书
2014/08/20 职场文书
毕业生党员个人总结
2015/02/14 职场文书
个人收入证明范本
2015/06/12 职场文书
公司安全管理制度范本
2015/08/05 职场文书
如何书写授权委托书?
2019/06/25 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers