java有哪些方法可以防止sql注入?
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注入攻击
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欺骗攻击怎么防范?
你是否遭遇过这样的情况?当你在浏览器中输入正确的URL地址,但是打开的并不是你想要去的网站。它可能是114的查询页面,可能是一个广告页面,更可能是一个刷流量的页面,甚至是一个挂马的网站。如果你遇到了上述情况话,那么极有可能你遭遇了DNS欺骗。
详情2018-01-13 12:29:36责编:llp 来源:驱动管家windows系统开机密码可以怎么破解?破解windows系统开机密码有哪些方法?
Windows系统开机密码从Windows 98开始就被人津津乐道,最早的密码保护可以用形同虚设来形容。直到后来的Windows 2000输入法漏洞,微软才意识到问题的严重性,而面对使用范围非常广泛的Windows XP系统来说,密
详情2018-01-10 14:59:51责编:llp 来源:驱动管家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(为网络通信提供安全及数据完整性的一种安
详情2018-01-08 13:56:46责编:llp 来源:驱动管家oracle数据库教程 电脑高手入侵oracle数据库有哪些常用的命令?
最近遇到一个使用了Oracle数据库的服务器,在狂学Oracle 请教高手后终于搞到了网站后台管理界面的所有用户密码。我发现Oracle操作起来真是太麻烦,为了兄弟们以后少走些弯路,我把入侵当中必需的命令整理出来。1
详情2018-01-13 20:02:40责编:llp 来源:驱动管家
- 录屏软件超级录屏好用吗?超级录屏使用方法
- 爱奇艺视频播放器停止工作的原因?爱奇艺视频播放器不工作怎么办?
- 笔记本装内存条的方法其实很简单!安装以下步骤操作就行了
- 连接好投影仪发现有重影或者模糊怎么调节
- 电脑的开机密码忘记怎么办?可以利用软件来解决
- 电信光猫连接无线路由器的方法教程分享
- 手机连上wifi不能上网的四种解决方法分别是什么?
- 三星手机铃声 三星note在哪里设置手机铃声?
- 电脑网速慢的原因是什么?网速怎么做可以提升?
- 网线水晶头接法有哪些?网线水晶头接法详细介绍
- 避免漏洞暴露被入侵后台,必须隐藏nginx版本号
- 什么是网络爬虫?网络爬虫不安全体现在哪些方面?
- 360浏览器别的站都打得开就是开不了百度贴吧是怎么回事?
- 猎豹wifi校园神器是什么?猎豹wifi校园神器怎么用?
- 笔记本电脑不知道怎么连接无线麦克风?无线麦克风连接方法
- 买华硕游戏笔记本选哪个性价比比较高
- u盘读不出来:插入u盘电脑却读不出来设备应该怎么解决
- 电脑如何显示音量控制?桌面无法显示音量控制
- iphone5完美越狱后安装软件失败的原因是什么?怎么办?
- 红辣椒xm手机曝光了 红辣椒xm的相关信息介绍