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制作简单的内容采集器的原理分析
Oct 01 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php的XML文件解释类应用实例
Sep 22 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
php实现随机显示图片方法汇总
May 21 PHP
php cookie工作原理与实例详解
Jul 18 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
如何优雅的使用 laravel 的 validator验证方法
Nov 11 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 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版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
几种tab切换详解
2017/02/03 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
python sys模块sys.path使用方法示例
2013/12/04 Python
python socket 超时设置 errno 10054
2014/07/01 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python生成数字图片代码分享
2017/10/31 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
集体婚礼策划方案
2014/02/22 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python
Redis基本数据类型List常用操作命令
2022/06/01 Redis