再看ibatis Order By注入问题

  
     李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李      
  如果要避免这种风险,可以选择参数化
     <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李      
  为何参数化可以防止注入?
  作为MySQL JDBC驱动来说(5.1.31),其实就是对敏感字符做了转义。
  
  观察com.mysql.jdbc。PreparedStatement的setString方法
  
  可以看到有如下的替换过程
  
     <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李   <李>      李

再看ibatis Order By注入问题