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 相关文章推荐
session 的生命周期是多长
Oct 09 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
php封装的smarty类完整实例
Oct 19 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
PHP实现简易用户登录系统
Jul 10 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php $_ENV为空的原因分析
2009/06/01 PHP
php 无限分类的树类代码
2009/12/03 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
python实现分页效果
2017/10/25 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
python实现按关键字筛选日志文件
2019/12/24 Python
python实现图片横向和纵向拼接
2020/03/05 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
数据库专业英语
2012/11/30 面试题
中医临床专业自我鉴定范文
2014/01/15 职场文书
粗加工管理制度
2014/02/04 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
校本培训个人总结
2015/02/28 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书