SQL 注入
SQL 注入
静态 SQL 语句是使用字符串拼接起来的。如:
1 | String username = "行小观"; |
我们将变量代入后的效果是:
1 | select * from user where username = '行小观' and password = '1234' |
这样执行是没问题的。
但是现在情况变了:
1 | String username = "行小观"; |
我们将变量代入后的效果是:
1 | select * from user where username = '行小观' and password = '1' or '1' = '1' |
因为or '1'='1'
的原因,导致 SQL 语句的 where 子句为 true,等价于
1 | select * from user |
所以会将整张表给查询出来。
以上便是SQL注入。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 墨枫个人博客!
评论