php addslashes和mysql_real_escape_string


Posted in PHP onJanuary 24, 2010

很好的说明了addslashes和mysql_real_escape_string的区别,虽然国内很多PHP coder仍在依靠addslashes防止SQL注入(包括我在内),我还是建议大家加强中文防止SQL注入的检查。addslashes的问题在于黑客可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会被看作是单引号,所以addslashes无法成功拦截。
当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字符还是用mysql_real_escape_string吧。
另外对于php手册中get_magic_quotes_gpc的举例:

if (!get_magic_quotes_gpc()) { 
$lastname = addslashes($_POST[‘lastname']); 
} else { 
$lastname = $_POST[‘lastname']; 
}

最好对magic_quotes_gpc已经开放的情况下,还是对$_POST['lastname']进行检查一下。
再说下mysql_real_escape_string和mysql_escape_string这2个函数的区别:
mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是:

mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑。

总结一下:

addslashes() 是强行加;
mysql_real_escape_string() 会判断字符集,但是对PHP版本有要求;
mysql_escape_string不考虑连接的当前字符集。

PHP 相关文章推荐
php中转义mysql语句的实现代码
Jun 24 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
PHPMailer 中文使用说明小结
Jan 22 #PHP
关于php fread()使用技巧
Jan 22 #PHP
PHP 时间转换Unix时间戳代码
Jan 22 #PHP
PHP 实用代码收集
Jan 22 #PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 #PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 #PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 #PHP
You might like
php 时间计算问题小结
2009/01/04 PHP
关于svn冲突的解决方法
2013/06/21 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
jquery 学习笔记一
2010/04/07 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
javascript读写json示例
2014/04/11 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
js禁止表单重复提交
2017/08/29 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python实现提取文章摘要的方法
2015/04/21 Python
python实现彩票系统
2020/06/28 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
用Python开发app后端有优势吗
2020/06/29 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
金讯Java笔试题目
2013/06/18 面试题
Android interview questions
2016/12/25 面试题
社区党建工作方案
2014/06/10 职场文书
广告学专业求职信
2014/06/19 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
领导干部学习心得体会
2016/01/23 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书