1.采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可:

        String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = preState.executeQuery();

2.采用正则表达式将包含有 单引号('),分号(;) 和 注释符号(--)的语句给替换掉来防止SQL注入

    public static String SQL(String str)
{
return str.replaceAll(".*([';]+|(--)+).*", " ");
} userName=SQL(userName);
password=SQL(password); String sql="select * from users where username='"+userName+"' and password='"+password+"' "
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);

最新文章

  1. 测试开发面试-java持续累积
  2. bootstrap之移动支持
  3. 探索javascript----事件对象下的各种X和Y
  4. C++调用shell
  5. blockdev命令和blkid命令
  6. apache 配置多个虚拟主机
  7. DS实验题 Old_Driver UnionFindSet结构
  8. 【转】HTML - embed 与 object 之争
  9. eq相等 ,ne、neq不相等 EL表达式
  10. mysql优化之连接优化(open-files-limit与table_open_cache)
  11. Android的SharedPreferences实用技巧
  12. Cordova+angularjs+ionic+vs2015开发(四)
  13. 用phpQuery像jquery一样解析html代码
  14. openSource clouds
  15. BZOJ1680: [Usaco2005 Mar]Yogurt factory
  16. HAUT--1262--魔法宝石(暴力)
  17. 05_Python Format Operation
  18. mysql 常见语句
  19. ext图片预览功能实现,前端代码
  20. 简单的实现HTTP密码验证登陆

热门文章

  1. Class.forName(“com.mysql.jdbc.Driver”)
  2. jQuery Callback
  3. python基础---集合类型(Sets)
  4. es6 中let与const的简析
  5. 获取select文本框的下拉菜单文字内容的两种方式
  6. pip、conda 换国内源,大大提高下载速度
  7. Java反射机制(五):使用反射增强简单工厂设计模式
  8. Python--day19--sys模块
  9. poj 1920 Towers of Hanoi
  10. 洛谷P3366 【模板】最小生成树 题解