60. 现在来了解sql Injection 我在不知道你用户名,密码的情况下我可以进入你这个系统,如果你用预编译,就没有这个问题,如果你用组串的方式,就都 可以注入进去,如果一登进去,就可以干很多事情,比如把你这个用户给删除了。现在有很多网站遭到了sql注入的攻击,把用户删除了,把系统搞摊了。
61. String sql = "select * from t_user where user_id='" + userId + "' and password='" + password + "'";
* 登录,演示SQL注入
* 用户:aaaaa
密码:' or '1'='1
* 形成的sql语句如下:
* select * from t_user where user_id='aaaaa' and password='' or '1'='1'
为什么密码写成那样,就是在组串啊,你看形成的效果啊,密码为空,还加上一句 1=1
而且关于这个删除,你的密码还可能放成drop table t_item这样的话,你那个表可能就被删了。
既然拼串不好,那为什么还要存在呢?这个在有些组合查询里面很好使,比如说你根据这个查而不查那个,在这种情况下组串比较方便。