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 相关文章推荐
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
php数据类型判断函数有哪些
Sep 23 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
php中的strpos使用示例
Feb 27 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
PHP实现搜索相似图片
Sep 22 PHP
crontab无法执行php的解决方法
Jan 25 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 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中使用Oracle数据库(2)
2006/10/09 PHP
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
深入php处理整数函数的详解
2013/06/09 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
jQuery中调用WebService方法小结
2011/03/28 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
python中mechanize库的简单使用示例
2014/01/10 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Python MD5加密实例详解
2017/08/02 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
一套软件测试笔试题
2014/07/25 面试题
后勤自我鉴定
2013/10/13 职场文书
班组长岗位职责
2014/03/03 职场文书
婚礼主持结束词
2014/03/13 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
教师节活动总结
2014/08/29 职场文书
委托培训协议书
2014/11/17 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
Mysql 设置boolean类型的操作
2021/06/04 MySQL
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server