驱动管家:安全、高效、精准的专业驱动下载站!

java有哪些方法可以防止sql注入?

2018-01-14 18:07:43责编:llp   来源:驱动管家     人气:

java防SQL注入,最简单的办法是杜绝SQL拼接,SQL注入攻击能得逞是因为在原有SQL语句中加入了新的逻辑,如果使用PreparedStatement来代替Statement来执行SQL语句,其后只是输入参数,SQL注入攻击手段将无效,这是因为PreparedStatement不允许在不同的插入时间改变查询的逻辑结构 ,大部分的SQL注入已经挡住了, 在WEB层我们可以过滤用户的输入来防止SQL注入比如用Filter来过滤全局的表单参数

01 import java.io.IOException;

02 import java.util.Iterator;

03 import javax.servlet.Filter;

04 import javax.servlet.FilterChain;

05 import javax.servlet.FilterConfig;

06 import javax.servlet.ServletException;

07 import javax.servlet.ServletRequest;

08 import javax.servlet.ServletResponse;

09 import javax.servlet.http.HttpServletRequest;

10 import javax.servlet.http.HttpServletResponse;

11 /**

12 * 通过Filter过滤器来防SQL注入攻击

java有哪些方法可以防止sql注入?

13 *

14 */

15 public class SQLFilter implements Filter {

16 private String inj_str = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|; |or|-|+|,";

17 protected FilterConfig filterConfig = null;

18 /**

19 * Should a character encoding specified by the client be ignored?

20 */

21 protected boolean ignore = true;

22 public void init(FilterConfig config) throws ServletException {

23 this.filterConfig = config;

24 this.inj_str = filterConfig.getInitParameter("keywords");

25 }

26 public void doFilter(ServletRequest request, ServletResponse response,

27 FilterChain chain) throws IOException, ServletException {

28 HttpServletRequest req = (HttpServletRequest)request;

29 HttpServletResponse res = (HttpServletResponse)response;

30 Iterator values = req.getParameterMap().values().iterator();//获取所有的表单参数

31 while(values.hasNext()){

32 String[] value = (String[])values.next();

33 for(int i = 0;i < value.length;i++){

34 if(sql_inj(value[i])){

35 //TODO这里发现sql注入代码的业务逻辑代码

36 return;

37 }

38 }

39 }

40 chain.doFilter(request, response);

41 }

42 public boolean sql_inj(String str)

43 {

44 String[] inj_stra=inj_str.split("\\|");

45 for (int i=0 ; i < inj_stra.length ; i++ )

46 {

47 if (str.indexOf(" "+inj_stra[i]+" ")>=0)

48 {

49 return true;

50 }

51 }

52 return false;

53 }

54 }

也可以单独在需要防范SQL注入的JavaBean的字段上过滤:

1 /**

2 * 防止sql注入

3 *

4 * @param sql

5 * @return

6 */

7 public static String TransactSQLInjection(String sql) {

8 return sql.replaceAll(".*([';]+|(--)+).*", " ");

9 }

  • 使用加密狗进行硬件保护的方法 加密狗怎么保护软件?

    使用加密狗进行硬件保护的方法 加密狗怎么保护软件?

    现在的解密技术排除法律和道德因素,就从学术角度来说是门科学。它与加密技术一样是相辅相成不断提高。 以下就针对使用加密狗(加密锁)进行硬件保护谈谈几点心得: 针对于使用加密狗的解密有什么方法? 1、硬件复制 复制硬件,即解密者复制Sentinel

    详情2018-01-03 17:53:52责编:llp   来源:驱动管家     
  • 打开电脑的六种方法 原来打电话也能开计算机

    打开电脑的六种方法 原来打电话也能开计算机

    如果有人问:“你会开计算机吗?”你肯定会说:“不就是按一下 Power 键吗?这有谁不会?开机,不只从这里开始如果再问你:“除了按 Power 键开机外,你还会用其他的方法开机吗?”你肯定会一愣。开机六种玩

    详情2018-01-12 08:50:40责编:llp   来源:驱动管家     
  • 远程软件怎么访问硬盘?远程软件访问硬盘的方法?

    远程软件怎么访问硬盘?远程软件访问硬盘的方法?

    很多时候当一台计算机中毒以后,我们的远控软件就会查看到你硬盘的重要数据,从而将之盗取。我们怎么防止这种情况出现呢?其实您可以把硬盘加密码。但是如果入侵者用远控软件访问就不需要输入密码,直接就能访问

    详情2018-01-09 08:52:31责编:llp   来源:驱动管家     
  • 什么是dns欺骗攻击?dns欺骗攻击怎么防范?

    什么是dns欺骗攻击?dns欺骗攻击怎么防范?

    你是否遭遇过这样的情况?当你在浏览器中输入正确的URL地址,但是打开的并不是你想要去的网站。它可能是114的查询页面,可能是一个广告页面,更可能是一个刷流量的页面,甚至是一个挂马的网站。如果你遇到了上述情况话,那么极有可能你遭遇了DNS欺骗。

    详情2018-01-13 12:29:36责编:llp   来源:驱动管家     
  • windows系统开机密码可以怎么破解?破解windows系统开机密码有哪些方法?

    windows系统开机密码可以怎么破解?破解windows系统开机密码有哪些方法?

    Windows系统开机密码从Windows 98开始就被人津津乐道,最早的密码保护可以用形同虚设来形容。直到后来的Windows 2000输入法漏洞,微软才意识到问题的严重性,而面对使用范围非常广泛的Windows XP系统来说,密

    详情2018-01-10 14:59:51责编:llp   来源:驱动管家     
  • dr.web大蜘蛛的病毒隔离路径设置有哪些?

    dr.web大蜘蛛的病毒隔离路径设置有哪些?

    在使用Dr Web的朋友都知道 快速安装方式的病毒隔离路径为C: Program Files DrWeb infected !!!的文件夹下(如下图),其中有监控的隔离区设置,扫描的隔离区设置,发垃圾邮件的隔离区设置三种。下面我们分别来设

    详情2018-01-12 16:14:34责编:llp   来源:驱动管家     
  • 什么是防火墙?防火墙有哪些类别?

    什么是防火墙?防火墙有哪些类别?

    随着INTERNET的迅猛发展,现在每家每户都拥有计算机并且都连接上了INTERNET,在网络给我们带来了方便的同时,互联网的弊端也慢慢显露出来,不少人在联网时会被人有意或者无意的攻击,从而导致自己存储在计算机上

    详情2018-01-07 10:25:54责编:llp   来源:驱动管家     
  • 网络安全知识 揭秘网络安全的五个误区

    网络安全知识 揭秘网络安全的五个误区

    网络安全越来越成为一个大问题,网络安全事故和个人隐私数据泄露的频发,我们不得不对自己的信息加以保护,一起来看看网络安全自己的一系列误区吧。选择一个话题,什么话题都行,始终有一些人信以为真的误区和无

    详情2018-01-08 17:58:17责编:llp   来源:驱动管家     
  • openssl漏洞有哪些?openssl漏洞导致信息泄露

    openssl漏洞有哪些?openssl漏洞导致信息泄露

    小编带来了openssl漏洞详情,想知道openssl重大安全漏洞具体是什么情况吗?会不会威胁到我们的财产安全呢?下文将会为大家详细介绍,网友们可以来了解一下。昨日,OpenSSL(为网络通信提供安全及数据完整性的一种安

    详情2018-01-08 13:56:46责编:llp   来源:驱动管家     
  • oracle数据库教程 电脑高手入侵oracle数据库有哪些常用的命令?

    oracle数据库教程 电脑高手入侵oracle数据库有哪些常用的命令?

    最近遇到一个使用了Oracle数据库的服务器,在狂学Oracle 请教高手后终于搞到了网站后台管理界面的所有用户密码。我发现Oracle操作起来真是太麻烦,为了兄弟们以后少走些弯路,我把入侵当中必需的命令整理出来。1

    详情2018-01-13 20:02:40责编:llp   来源:驱动管家