您当前的位置: 首页 >  sql

liaowenxiong

暂无认证

  • 2浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SQL注入

liaowenxiong 发布时间:2021-11-17 14:53:22 ,浏览量:2

假设你的 SQL 语句如下:

String sql = "select * from user where account_name = '" + accountName + "' and password = '" + password + "'";

我输入用户名 sdfdsf,密码 a' or 'a' = 'a 可以得到如下的 SQL 语句:

select * from user where account_name = 'sdfdsf' and password = 'a' or 'a' = 'a'

条件一:account_name = ‘sdfdsf’ and password = ‘a’ 条件二:‘a’ = ‘a’ 上述两个条件是或者的关系。

如上例子,通过某些字符的巧妙组合,拼接出可以正常执行且有正确结果的 SQL 语句,就是 SQL 注入。采有静态 SQL 语句的地方容易出现这样的问题,而使用预编译的 SQL 则可以避免此类问题。所以我们在 Java 代码中执行 SQL 语句时建议使用 PreparedStatement 对象来执行 SQL 语句。

扩展:

SELECT * FROM USER WHERE account_name = 'zhangsan' OR account_name = 'lisi' AND PASSWORD = '234';

条件一:account_name = ‘zhangsan’ 条件二:account_name = ‘lisi’ AND PASSWORD = ‘234’

上述两个条件是或者的关系。

可以参考《SQL注入天书》。

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0399s