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)
如何找一名黑客帮忙相关问题 求盗qq黑客信用好的联系方式相关问题 黑客是怎么当上的 qq强制登陆器(qq强制登陆)...
双十一也被称作单身节,在这一天单身的人是最痛楚的日子。想告别单身想找个女朋友。不愿过单身节。下边是:2019单身节想告别单身朋友圈说说 单身节想告别单身搞笑句子。八宝营业网点产生有关详细介绍。 单...
弄到他人qq密码方式(手机微信追踪闲聊信息软件)自2007年1月09日苹果发布会第一代iPhone智能机,点爆智能机销售市场,十多年来智能机的发展趋势早已更改了大家的日常生活,如今日常生活的各个方面都...
在网上和大家调侃时总喜欢说韩国是高丽棒子印度是印度阿三。为啥叫人家棒子和阿三呢? 高丽棒子 第一种说法:棒子也就是棒槌,方言,一般是指半吊子。乾隆时期朝鲜的国王来北京朝见,乾隆很高兴,在紫禁城宴请...
在军队支援湖北医疗队队员中,有一对夫妻均来自福州的一支军队医院,他们被武汉泰康同济医院的队友们亲切称为战“疫”夫妻。 然而,因任务不同,两人同处一地也很难相见。2月25日晚21时,丈夫林衔亮下班刚回...
不是一切的英文字母都有与之类似对应的西里尔字母 由 Snyk 建议和剖析的来自500多名开源项目维护者和用户填写的查询问卷这时候转发一个80端口,合作hsf写入hook建立一个暂时的垂钓链接。 坦桑尼...