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 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
浅谈js中的this问题
2017/08/31 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
Python变量和数据类型详解
2017/02/15 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
中职招生先进个人材料
2014/08/31 职场文书
司机工作自我鉴定
2014/09/19 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
答谢酒会主持词
2015/07/02 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python
MySQL池化框架学习接池自定义
2022/07/23 MySQL