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生成二维码的两个方法和实例
Jul 01 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
PHP生成器简单实例
May 13 PHP
以文件形式缓存php变量的方法
Jun 26 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 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页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
php抽象类用法实例分析
2015/07/07 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP实现百度人脸识别
2019/05/06 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js省市联动效果完整实例代码
2015/12/09 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
Python中的map、reduce和filter浅析
2014/04/26 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
大学生大二自我鉴定
2013/10/28 职场文书
综合实践活动总结
2014/05/05 职场文书
学校教师安全责任书
2014/07/23 职场文书
企业员工集体活动方案
2014/08/17 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
庆祝教师节主持词
2015/07/06 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
vue里使用create, mounted调用方法
2022/04/26 Vue.js