Java防止SQL注入

来源:互联网 发布:古天乐李泽楷关系 知乎 编辑:程序博客网 时间:2024/04/30 02:05
1. 定义:

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

2. 防止SQL注入的方法:

A:使用PreparedStatement代替Statement

   1)使用PreparedStatement 比Statement的代码的可读性和可维护性更好.
   2)PreparedStatement尽最大可能提高性能.
   3)最重要的一点是PreparedStatement极大地提高系统的安全性

PreparedStatement和Statement对比实例:

1.stmt.executeUpdate("insert into tb_name (col1,col2,col2,col4) values ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");   2.  3.perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");   4.perstmt.setString(1,var1);   5.perstmt.setString(2,var2);   6.perstmt.setString(3,var3);   7.perstmt.setString(4,var4);   8.perstmt.executeUpdate();  


 

 

 

B: 使用字符串过滤

或者使用Filter来过滤全局的表单参数。