什么是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注入!