SQL注入
什么是SQL注入?
- SQL注入是一种代码注入技术,一般被应用于攻击web应用程序.
- 它通过在web应用接口传入一些特殊参数字符,来欺骗应用服务器,执行恶意的SQL命令,以达到非法获取系统信息的目的.
- 它目前是黑客对数据库进行攻击的最常用手段之一.
防止SQL注入
出现这种情况主要是:
- 对数据库来说,它并不知道当前SQL操作合不合法,只要没有语法错误就去执行.
- 简单的字符串替换,字符串是什么,就会解析成什么,存在SQL注入风险.
- 这样在生产SQL时可以通过拼接或其他方式修改SQL语句以达到不符合应用需求的恶意操作.
- 上面能够把条件改为true并查询所有数据,同样可以删除所有等等.
- 这一类属于最基础的SQL注入,在拼接SQL时做些处理便可有效防止.
解决方法:
有很多种方法可以组合使用,这里只说一下最简单的.
在python中使用官方提供的
execute(SQL,params)
,底层会对参数进行转码替换能够保证安全.
像java中是有preparestatement
,mybatis
的#{}
占位符等.
如有错误还望指出