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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
PHP 开发工具
Dec 06 PHP
用php过滤危险html代码的函数
Jul 22 PHP
40个迹象表明你还是PHP菜鸟
Sep 29 PHP
php Try Catch异常测试
Mar 01 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
php中字符串和整数比较的操作方法
Jun 06 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 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 curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
jquery中ajax学习笔记4
2011/10/16 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python AES加密模块用法分析
2017/05/22 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
python 中如何获取列表的索引
2019/07/02 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
高一化学教学反思
2014/02/05 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
亮剑观后感300字
2015/06/05 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Android 中的类文件和类加载器详情
2022/06/05 Java/Android
nginx配置指令之server_name的具体使用
2022/08/14 Servers
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS