码迷,mamicode.com
首页 > 数据库 > 详细

怎么预防sql注入攻击

时间:2015-04-08 19:40:52      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

 

假设sql是搜索用户A的文章,sql会是这样:

select * from table where owner=‘A‘;

sql注入攻击者会修改用户名来实现攻击,例如把A 改成A‘ or 1=‘1

组合后的sql语句:

select * from table where owner=‘A‘ or 1=‘1‘;

这样就可以获取所有用户的文章

可见,sql攻击就是把部分数据内容伪造成sql语句,例如上面把 or 1=伪造成sql语句来实现攻击

而伪造的方法,就是在内容里面加入引号,所以预防sql注入的方法就是把传入的参数里面的引号进行转义,例如上面把用户名改成 A\‘ or 1=\‘1,就可以预防这样的sql攻击

引号包括单引号和双引号

 

python的MySQLdb模块中有专门转义的函数:

import MySQLdb


def safe(s):
    return MySQLdb.escape_string(s)

 

怎么预防sql注入攻击

标签:

原文地址:http://www.cnblogs.com/Xjng/p/4403378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!