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 相关文章推荐
别人整理的服务器变量:$_SERVER
Oct 20 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php程序效率优化的一些策略小结
Jul 17 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
php时间函数用法分析
May 28 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 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 Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
jquery 弹出层实现代码
2009/10/30 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
js实现图片实时时钟
2020/01/15 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
Python urllib2运行过程原理解析
2020/06/04 Python
python如何保存文本文件
2020/06/07 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
《多彩的民间艺术》教学反思
2016/02/16 职场文书
如何在Python项目中引入日志
2021/05/31 Python