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 09 PHP
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
优化使用mysql存储session的php代码
Jan 10 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP 递归效率分析
Nov 24 PHP
php防攻击代码升级版
Dec 29 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
深入PHP变量存储的详解
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 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 大数据量及海量数据处理算法总结
2011/05/07 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
Javascript开发包大全整理
2006/12/22 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
JS常用函数使用指南
2014/11/23 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
在Django的session中使用User对象的方法
2015/07/23 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
青岛海底世界导游词
2015/02/11 职场文书
Python实现排序方法常见的四种
2021/07/15 Python