介绍
本篇文章给大家分享的是有关怎么在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注入,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。