什么是SQL注入

简单来说,上一篇里面写的命令注入是攻击操作系统,而SQL注入攻击的是数据库

举个简单例子搞懂原理

假设你去银行(数据库)取钱,BA(网页前端)问你要密码,然后递给柜员(后台SQL语句)去查询。

如果咱们当良民,老老实实输入密码123,柜员(这玩意儿看不懂你的数字,只能看懂命令)就会看到纸条上写着:

SLECT * FROM users WHERE password = ‘123’

(去数据库找密码是123的用户)

但是可惜wuli法外狂徒张三,没有输入密码,而是输入了一段话:

’ OR 1=1 –

那么柜员看到的纸上就变成了:

SELECT * FROM users WHERE password = ‘’ OR 1=1 –‘

因为1=1是永真式,这条指令一旦执行,数据库就会把所有用户的数据给咱们张三,此乃SQL注入!