这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

方法一:

mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 !

$sql = "select count(*) as ctr from users where username

='".mysql_real_escape_string($username)."' and

password='". mysql_real_escape_string($pw)."' limit ";

方法二:

打开magic_quotes_gpc来防止SQL注入。php.ini中有一个设置:magic_quotes_gpc = Off这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ' 转为 \'等,对于防止sql注射有重大作用。

如果magic_quotes_gpc=Off,则使用addslashes()函数。

方法三:

自定义函数

/**

* 防止sql注入自定义方法一

* author: xiaochuan

* @param: mixed $value 参数值

*/ 

function check_param($value=null) { 

        #  select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile

    $str = 'select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile';

    if(!$value) {

        exit('没有参数!'); 

    }elseif(eregi($str, $value)) { 

        exit('参数非法!');

    }

    return true; 

} 

/**

* 防止sql注入自定义方法二

* author: xiaochuan

* @param: mixed $value 参数值

*/

function str_check( $value ) { 

    if(!get_magic_quotes_gpc()) { 

        // 进行过滤 

        $value = addslashes($value); 

    } 

    $value = str_replace("_", "\_", $value); 

    $value = str_replace("%", "\%", $value); 

   return $value; 

} 

/**

* 防止sql注入自定义方法三

* author: xiaochuan

* @param: mixed $value 参数值

*/

function post_check($value) { 

    if(!get_magic_quotes_gpc()) {

        // 进行过滤  

        $value = addslashes($value);

    } 

    $value = str_replace("_", "\_", $value); 

    $value = str_replace("%", "\%", $value); 

    $value = nl2br($value); 

    $value = htmlspecialchars($value); 

    return $value; 

}

以上就是PHP+Mysql防止SQL注入的方法的详细内容

更多PHP相关知识请关注我的专栏PHP​zhuanlan.zhihu.com

PHP+Mysql防止SQL注入的方法的更多相关文章

  1. mysql进阶(二十四)防御SQL注入的方法总结

    防御SQL注入的方法总结 这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下. SQL注入是一类危害极大的攻击形式.虽然危害很大,但是防御却 ...

  2. 在php中防止SQL注入的方法

    摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PH ...

  3. Python中防止sql注入的方法详解

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...

  4. 第二百八十一节,MySQL数据库-SQL注入和pymysql模块防止SQL注入

    MySQL数据库-SQL注入和pymysql模块防止SQL注入 SQL注入就是通过SQL语句绕开程序判断,获取到数据库的内容 下面以一个简单的程序登录SQL注入举例: 正常登录 1.数据库有一张会员表 ...

  5. 三十一、MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  6. DB-MySql:MySQL 及 SQL 注入

    ylbtech-DB-MySQL:MySQL 及 SQL 注入 1.返回顶部 1. MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL ...

  7. python防止sql注入的方法

    python防止sql注入的方法: 1. 使用cursor.execute(sql, args)的参数位: sql_str = "select * from py_msgcontrol.py ...

  8. 防御SQL注入的方法总结

    这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下   SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难 ...

  9. MySQL防范SQL注入风险

    MySQL防范SQL注入风险 0.导读 在MySQL里,如何识别并且避免发生SQL注入风险 1.关于SQL注入 互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低.成本 ...

随机推荐

  1. AdaBoost级联分类器

    Haar分类器使用AdaBoost算法,但是把它组织为筛选式的级联分类器,每个节点是多个树构成的分类器,且每个节点的正确识别率很高.在任一级计算中,一旦获得“不在类别中”的结论,则计算终止.只有通过分 ...

  2. ubuntu18 + caffe+cpu+anaconda3

    本记录只暂时只记录一些错误. 编译错误,opencv3.2与anaconda3下的libtiff不兼容,冲突. 问题查找(查找所有的TIFF库与编译错误提示匹配/usr/lib/x86_64-linu ...

  3. Shell脚本查询磁盘数量

    之前帮朋友写的脚本,运维大数据服务器时候用的. #!/bin/bash ##磁盘数量 Disk=$( fdisk -l |grep 'Disk' |grep 'sd' |awk -F , '{prin ...

  4. UES

    Spring-core-4.3.16 ObjectUtils.java public static boolean isEmpty(Object obj) { if (obj == null) { r ...

  5. 同步选中所有checkbox

    $("input[type=checkbox][tag=ckAll]").change(function () $(this).parent().parent().siblings ...

  6. opencv学习之颜色空间转换cvtColor()

    我们生活中大多数看到的彩色图片都是RGB类型,但是在进行图像处理时,需要用到灰度图.二值图.HSV.HSI等颜色制式,opencv提供了cvtColor()函数来实现这些功能.首先看一下cvtColo ...

  7. mysql之路4

    MYSQL之约束 2.主键约束 349行cnname换成cname

  8. CentOS 7 如何设置为eth0网卡

    参考文章https://www.linuxidc.com/Linux/2017-06/144973.htm 主要方法 1) 安装的时候,在内核选项中加上net.ifnames=0 biosdevnam ...

  9. angular6 路由拼接查询参数如 ?id=1 并获取url参数

    angular6 路由拼接查询参数如 ?id=1 并获取url参数 路由拼接参数: <div class="category-border" [routerLink]=&qu ...

  10. JavaScript错误-throw、try和catch

    try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行. JavaS ...