加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Django中防止SQL注入的方法

(2012-07-04 09:29:09)
标签:

django

防止

sql

注入

方法

it

分类: 资料

SQL注入是所有网站建设都应该注意防范的东西,使用Django当然也不例外。下面介绍几个Django中防范SQL注入的方案。

 

方案一

总是使用Django自带的数据库API。它会根据你所使用的数据库服务器(例如PostSQL或者MySQL)的转换规则,自动转义特殊的SQL参数。这被运用到了整个Django的数据库API中,只有一些例外:

传给 extra() 方法的 where 参数。 (参考 附录 C这个参数故意设计成可以接受原始的SQL

使用底层数据库API的查询。

 

方案二

看下面的Python代码:

from django.db import connection

 

def user_contacts(request):

    user request.GET['username']

    sql "SELECT FROM user_contacts WHERE username %s"

    cursor connection.cursor()

    cursor.execute(sql, [user])

... do something with the results

 

请注意在cursor.execute() SQL语句中使用“%s”,而不要在SQL内直接添加参数。 如果你使用这项技术,数据库基础库将会自动添加引号,同时在必要的情况下转意你的参数。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有