1、什么是sql注入: SQL注入攻击指的是经过构建特殊的输入做为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,经过执行SQL语句进而执行攻击者所要的操做,其主要缘由是程序没有细致地过滤用户输入的数据,导致非法数据侵入系统。 根据相关技术原理,SQL注入能够分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是因为程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生缘由一般表如今如下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。 2、python中解决sql注入 python中存在sql注入风险的sql语句 错误用法: sql = "select id,name from user_table where id = %s and name = %s" % (id, name) cur.execute(sql) 正确用法: 1. execute() 函数自己有接受sql语句参数位的,能够经过python自身的函数处理sql注入问题。 args = (id, type) cur.execute('select id,name from user_table where id = %s and name = %s', args ) 2. rs=c.execute("select * from log where f_UserName=:usr",{"usr":"jetz"}) 3. rs=c.execute("select * from log where f_UserName=:1 ",["jetz"]) 使用如此参数带入方式,python会自动过滤args中的特殊字符,制止SQL注入的产生。