怎么在python中使用Django防止SQL注入

  介绍

本篇文章给大家分享的是有关怎么在python中使用Django防止SQL注入,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

, id =11001   ,,,sql =,“““   ,才能选择   ,,,,,,   ,,,,,,   ,,,,,的年龄   从,,,   ,,,,,的学生   ,,,,   ,,,,,id =,“““+身份证+“““,   ,,,,,,   ,,,cursor =, connection.cursor ()   ,,,试一试:   ,,,,,cursor.execute (sql)   ,,,,,result =, cursor.fetchall ()   ,,,,,for  result1 结果:拷贝   ,,,,,,,//,代码块   ,,,,,,,   ,,,最后:   ,,,,,cursor.close ()

一般来说写SQL语句在程序中,若有哪条件一般都可能会去直接拼接,到那时这种方式容易被SQL注入,首先说明下什么是SQL的注入,简单来说就是你写的SQL被别人在页面上拼接了SQL。比如拼接1=1这种条件,如果登录接口被注入1=1那么就可以随意进入你的程序了。所以才要防止SQL的注入。

下面再来看看防止SQL的注入

, id =11001=,params  []   ,,,sql =,“““   ,才能选择   ,,,,,,   ,,,,,,   ,,,,,的年龄   从,,,   ,,,,,的学生   ,,,,   ,,,,,id =% s   ,,,,,,   ,,,params.append (id)   ,,,cursor =, connection.cursor ()   ,,,试一试:   ,,,,,cursor.execute (sql, params)   ,,,,,result =, cursor.fetchall ()   ,,,,,for  result1 结果:拷贝   ,,,,,,,//,代码块   ,,,,,,,   ,,,最后:   ,,,,,cursor.close ()

我们把直接拼接的条件变量放入集合再把集合带入执行SQL的方法,就可以避免被注入的风险,在SQL的条件中使用% s进行站位,要注意的是这个% s是有顺序的,比如说上面这个SQL后面在跟一个条件name=% s那么下面的参数集合也要多加一个元素params.append(名字)这个时候名称是在id后面的在集合中。这样可以一一对应,但如果要是把params.append(名字)写在了params.append (id)前面SQL执行就会出现id=姓名和名称=id的条件就乱了,甚至还会报错。
使用连接完毕之后一定要记得关闭,连接是django。db中的,导入不要导入错了。

以上就是怎么在python中使用Django防止SQL注入,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

怎么在python中使用Django防止SQL注入