1

2

3

4

5

6

7

8

function get_str($string)

{

if (!get_magic_quotes_gpc())

{

return addslashes($string);

}

return $string;

}

国内很多PHP coder仍在依靠addslashes防止SQL注入(包括我在内),我还是建议大家加强中文防止SQL注入的检查。addslashes的问题在于可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会被看作是单引号,所以addslashes无法成功拦截。

当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字符还是用mysql_real_escape_string吧。

最好对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不考虑连接的当前字符集。

本文转载自网络

mysql escape 注入_php 防mysql注入函数 addslashes和mysql_real_escape_string相关推荐

  1. php mysql 防 sql注入_php 防sql注入方法

    php防sql注入的方法:1.使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符:2.打开magic_quotes_gpc来防止SQL注入:3.通过自定义 ...

  2. 简单的 php 防注入、防跨站 函数

    /*** 简单的 php 防注入.防跨站 函数* @return String*/function fn_safe($str_string) {//直接剔除$_arr_dangerChars = ar ...

  3. php 接口 防跨站,简单的 php 防注入、防跨站 函数

    自己写的 简单的 php 防注入.防跨站 函数,分享给大家 1.[代码][PHP]代码 function fn_safe($str_string) { //直接剔除 $_arr_dangerChars ...

  4. mysql addslashes_PHP函数addslashes和mysql_real_escape_string的区别

    首先:不要使用mysql_escape_string,它已被弃用,请使用mysql_real_escape_string代替它. mysql_real_escape_string和addslashes ...

  5. php+mysql投票代码_PHP+jQuery+MySql实现红蓝投票功能

    本文是一篇综合知识应用类文章,需要您具备PHP.jQuery.MySQL以及html和css方面的基本知识.本文在<PHP+MySql+jQuery实现的"顶"和" ...

  6. php mysql emoji表情_php 让MySQL支持Emoji表情 mysql 5.5.3+

    让MySQL支持Emoji表情 mysql 5.5.3+ 让mysql支持Emoji表情,涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集. mysql 版本 5.6 1 解决 ...

  7. php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法

    PHP连接mysql出现乱码的原因与解决方法 解决MySql数据库乱码的一个首要前提是保证 数据库+数据表+前端显示 编码一致,国内项目一般统一设定为GB2312或GBK,而国际化项目则一般使用utf ...

  8. php 查询mysql数据库 打印_php 查询mysql数据库 打印

    用C语言操纵Mysql 原文:用C语言操纵Mysql 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef ...

  9. php+mysql防注入字符串过滤_php 防sql注入过滤代码

    我们提供了三个函数不来过滤一些特殊的字符,主要是利用php把sql敏感字符串给过滤掉了,好了下面来看看这款代码吧,有需要的朋友拿去看看,实例代码如下: function phpsql_show($st ...

最新文章

  1. 腾讯全力支持鸿蒙,腾讯宣布大力发展车联网,或与华为鸿蒙强强联合!
  2. php删除session中的值,PHP中session变量的销毁
  3. 单片机如何实现大数据的串口传输_获客成本日益增加,企业如何实现大数据精准获客?...
  4. 几个免费高质量图标搜索引擎。
  5. Visual Assist X插件
  6. yelee主题中加入revolvermaps插件
  7. 关于ORACLE的GUID主键生成
  8. 大白书中无向图的点双联通分量(BCC)模板的分析与理解
  9. java五子棋人机对战_实现简单的人机对战五子棋(实践)
  10. PAT1008数组元素循环右移问题(2,3测试点不过的解决办法)
  11. 阶段3 2.Spring_04.Spring的常用注解_1 今日课程内容介绍
  12. X5内核视频之问答汇总
  13. 不加群就可以提取QQ群成员
  14. 大麦支持选座位、定时等功能
  15. matlab实现手绘风格(简笔画风格、漫画风格)的曲线绘图
  16. 租便宜的VPS应该注意什么?
  17. Linux下的打包和解压缩命令
  18. Mysql的数据类型bit 导出数据展示为SOH
  19. Java项目:(小程序)前台+后台相结合在线点餐系统(spring+spring mvc+mybatis+layui+微信小程)
  20. 微信之父张小龙的2359篇日记

热门文章

  1. extjs4 冻结列_extjs4 事件处理
  2. python动态加载模块有什么用_人生苦短我用python(02)动态加载模块
  3. Keras-Sequential模型(2)
  4. Stanford CS230深度学习(三)调参、正则化和优化算法
  5. c++中queue用法
  6. 吴恩达深度学习的改善深层神经网络编程作业:优化Optimization
  7. 第二:Git如何将本地项目上传到Github(超详解)
  8. 中波形过于密集_论高速公路波形护栏板外观设计的重要性
  9. 此url不支持http方法get_HTTP 入门
  10. python 插值_有序点列的样条插值