由sql注入联想到PreparedStatement

PreparedStatement极大地提高了安全性.
  

即使到目前为止,仍有一些人连基本的恶意SQL语法都不知道.
  

String  sql  =  "select  *  from  tb_name  where  name ='  '  and  password  = '  ' ";
  

如果我们把  [  'or'1'='1  ]  作为password传入进来.用户名随意,看看会成为什么?
  

select  *  from  tb_name  =  '随意'  and  passwd  =  ' '  or  '1'='1';
  

因为'1'='1'肯定成立,所以可以任何通过验证.更有甚者:

  

而如果你使用预编译语句.你传入的任何内容就不会和原来的语句发生任何匹配的关系.

只要全使用预编译语句,你就用不着对传入的数据做任何过虑.

而如果使用普通的statement,有可能要对drop,;等做费尽心机的判断和过虑.

posted @ 2017-07-17 15:12  萌哒哒~  阅读(114)  评论(0编辑  收藏  举报