Java防止SQL注入
2013-01-15 23:36
239 查看
1. 定义:
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
2. 防止SQL注入的方法:
A:使用PreparedStatement代替Statement
1)使用PreparedStatement 比Statement的代码的可读性和可维护性更好.
2)PreparedStatement尽最大可能提高性能.
3)最重要的一点是PreparedStatement极大地提高系统的安全性
PreparedStatement和Statement对比实例:
B: 使用字符串过滤
所谓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();
sql="select * from admin where username=? and password=?"; PreparedStatement psmt= con.prepareStatement(sql); psmt.setString(1,username); psmt.setString(2,password); ResultSet rs = psmt.executeQuery(); if(rs.next){ rs.close(); con.close(); return false; } else{ rs.close(); con.close(); return true; }
B: 使用字符串过滤
public static String filterContent(String content){ String flt ="'|and|exec|insert|select|delete|update|count|*|% |chr|mid|master|truncate|char|declare|;|or|-|+|,"; Stringfilter[] = flt.split("|"); for(int i=0;i<filter.length ; i++) { content.replace(filter[i], ""); } return content; }或者使用Filter来过滤全局的表单参数。
相关文章推荐
- java持久层框架mybatis如何防止sql注入
- JAVA中防止SQL注入
- Java防止SQL注入的几个途径
- 关闭 java中预处理PrepareStatement为什么能起到防止SQL注入的作用
- Java防止SQL注入
- java 防止sql注入
- Java防止SQL注入的途径介绍
- Java防止SQL注入的几个途径
- java中预处理PrepareStatement起到防止SQL注入的作用
- java持久层框架mybatis防止sql注入的方法
- Java防止SQL注入2(通过filter过滤器功能进行拦截)
- Java防止SQL注入的几个途径
- java 防止sql注入的简单方法
- java连接数据库操作2--防止sql注入
- java持久层框架mybatis如何防止sql注入
- Java防止SQL注入的几个途径
- java如何防止sql注入
- java持久层框架mybatis如何防止sql注入
- java过滤防止sql注入过滤
- 【Javaweb】后台的字符串转义,入库之前记得先对字符串转义防止sql注入问题