PHP中使用addslashes函数转义的安全性原理分析

2015-01-24信息快讯网

这篇文章主要介绍了PHP中使用addslashes函数转义的安全性原理分析,较为深入的分析了addslashes函数的用法及ecshop自定义函数addslashes_deep的不足之处,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php中JSON的使用与转换
php rsa加密解密使用详解
linux中cd命令使用详解
php计划任务之ignore_user_abort函数实现方法
给ECShop添加最新评论
PHP和Shell实现检查SAMBA与NFS Server是否存在
php实现utf-8转unicode函数分享
php使用fputcsv()函数csv文件读写数据的方法
php读取flash文件高宽帧数背景颜色的方法
php实现监控varnish缓存服务器的状态
PHP跨平台获取服务器IP地址自定义函数分享
完整删除ecshop中获取店铺信息的API
php中mail函数发送邮件失败的解决方法
php中addslashes函数与sql防注入
php之curl设置超时实例
php中$_GET与$_POST过滤sql注入的方法
Codeigniter(CI)框架分页函数及相关知识
ThinkPHP模板之变量输出、自定义函数与判断语句用法
ThinkPHP上使用多说评论插件的方法
set_exception_handler函数在ThinkPHP中的用法
php使用fopen创建utf8编码文件的方法
Laravel 4.2 中队列服务(queue)使用感受
用 Composer构建自己的 PHP 框架之使用 ORM
使用array_map简单搞定PHP删除文件、删除目录
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
自己写的兼容低于PHP 5.5版本的array_column()函数
教你如何开启shopnc b2b2c 伪静态
php中__destruct与register_shutdown_function执行的先后顺序问题
安装ImageMagick出现error while loading shared libraries的解决方法
PHP中exec函数和shell_exec函数的区别
PHP关于htmlspecialchars、strip_tags、addslashes的解释
©2014-2024 dbsqp.com