防止SQL注入(JAVA代码实现)
2010-10-04 09:44
501 查看
转:http://blog.csdn.net/h72001346/archive/2008/12/05/3450396.aspx
有两种方法,一种是对登陆的获得的变量进行特殊字符判断
一种是在登陆的时候使用PreparedStatement进行查询,可以有效的方式SQL注入
第一种方法
调用的时候使用如下语句:
boolean f = SqlString.sql_inj(username);
PS:我在网上看过以上代码他们用的分隔符号是“|”但是我在使用的过程中,发现String inj_stra[] = inj_str.split("|");时是把所有字符号都分开了,不是拆分的字符串,而是拆分成字符,我用的JDK1.5,不知道是不是JAVA版本的问题,我查看JDK1.5的API的例子是用的“:”分隔的,所以我也用这个符号分隔,就可以把每个字符串拆分开来。
第二种方法就是查询的时候使用PreparedStatement
有两种方法,一种是对登陆的获得的变量进行特殊字符判断
一种是在登陆的时候使用PreparedStatement进行查询,可以有效的方式SQL注入
第一种方法
public static boolean sql_inj(String str){ String inj_str = "':and:exec:insert:select:delete:update:count:*:%:chr:mid:master:truncate:char:declare:;:or:-:+:,"; String inj_stra[] = inj_str.split(":"); for (int i = 0; i < inj_stra.length; i++) { if (str.indexOf(inj_stra[i]) != -1) { return false; } } return true;}
调用的时候使用如下语句:
boolean f = SqlString.sql_inj(username);
PS:我在网上看过以上代码他们用的分隔符号是“|”但是我在使用的过程中,发现String inj_stra[] = inj_str.split("|");时是把所有字符号都分开了,不是拆分的字符串,而是拆分成字符,我用的JDK1.5,不知道是不是JAVA版本的问题,我查看JDK1.5的API的例子是用的“:”分隔的,所以我也用这个符号分隔,就可以把每个字符串拆分开来。
第二种方法就是查询的时候使用PreparedStatement
public static boolean sql_ps(Connection con, String username, String password) throws SQLException{ String 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; }}
相关文章推荐
- 对于防止SQL注入的研究(JAVA代码实现)
- 【代码实现】防止SQL注入解决办法
- 数据库SqlParameter 的插入操作,防止sql注入的实现代码
- PHP防止SQL注入的实现代码
- PHP中防止SQL注入实现代码
- Python代码实现Java本地化资源字符串的检查,防止出现空指针异常
- 数据库SqlParameter 的插入操作,防止sql注入的实现代码
- PHP中防止SQL注入实现代码
- 防止PHP中SQL注入实现代码
- 算法-java代码实现计数排序
- 最小生成树的Prim算法和Kruskal算法java代码实现
- 1 redis在spring中的配置及java代码实现 2 redis在java项目中的使用
- java中list数据拆分为sublist实现分页的简单代码
- 平衡二叉搜索树(AVL树)的原理及实现源代码(有图文详解和C++、Java实现代码)
- Java代码与Xml实现界面的比较
- 【转载】对一致性Hash算法,Java代码实现的深入研究
- Android中用Java代码实现zip文件解压缩
- JAVA代码实现SFTP文件下载
- 状态机的伪Java代码实现与一点想法
- Java常用的八种排序算法与代码实现