*** P运用过滤器避免SQL注入

访客5年前黑客文章753

 什么是SQL注入进犯?引证百度百科的解说:

sql注入_百度百科:
所谓SQL注入,便是通过把SQL指令刺进到Web表单提交或输入域名或页面恳求的查询字符串,终究抵达诈骗服务器履行歹意的SQL指令。详细来说,它是使用现有应用程序,将(歹意)的SQL指令注入到后台数据库引擎履行的才能,它能够通过在Web表单中输入(歹意)SQL句子得到一个存在安全漏洞的网站上的数据库,而不是依照设计者目的去履行SQL句子。[1]  比方从前的许多影视网站走漏VIP会员暗码大多便是通过WEB表单递送查询字符暴出的,这类表单特别简单遭到SQL注入式进犯.
SQL注入进犯指的是通过构建特别的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过履行SQL句子从而履行进犯者所要的操作,其主要原因是程序没有详尽地过滤用户输入的数据,致使不合法数据侵入体系。
filter功用:
它使用户能够改动一个 request和修正一个response. Filter 不是一个servlet,它不能发生一个response,它能够
 
在一个request抵达servlet之前预处理request,也能够在脱离 servlet时处理response.
 
换种说法,filter其实是一个”servlet chaining”(servlet 链). 所以用户宣布的任何request都必定通过filter处理,咱们就在filter处理用户request包括的灵敏关键字,然后replace掉或是让页面转到过错页来提示用户,这样就能够很好的防sql注入了。
 
详细完成代码:
/YourProject/src/com/SqlFilter.java
 
仿制代码
 1 package com;
 2 import java.io.IOException;  
 3 import java.util.Enumeration;  
 4 import javax.servlet.Filter;  
 5 import javax.servlet.FilterChain;  
 6 import javax.servlet.FilterConfig;  
 7 import javax.servlet.ServletException;  
 8 import javax.servlet.ServletRequest;  
 9 import javax.servlet.ServletResponse;  
10 import javax.servlet.http.HttpServletRequest;  
11 import javax.servlet.http.HttpServletResponse;  
12   
13 //过滤sql关键字的Filter 
14 public class SqlFilter implements Filter {  
15   
16     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {  
17   
18         HttpServletRequest req = (HttpServletRequest) request;  
19         HttpServletResponse res = (HttpServletResponse) response;  
20         //取得一切恳求参数名  
21         Enumeration params = req.getParameterNames();  
22   
23         String sql = "";  
24         while (params.hasMoreElements()) {  
25             //得到参数名  
26             String name = params.nextElement().toString();  
27             //System.out.println("name===========================" + name + "--");  
28             //得到参数对应值  
29             String[] value = req.getParameterValues(name);  
30             for (int i = 0; i < value.length; i++) {  
31                 sql = sql + value[i];  
32             }  
33         }  
34         System.out.println("被匹配字符串:"+sql);  
35         if (sqlValidate(sql)) {  
36             res.sendRedirect("error.jsp");   
37         } else {  
38             chain.doFilter(req, res);  
39         }  
40     }  
41   
42     //校验
43     protected static boolean sqlValidate(String str) {  
44         str = str.toLowerCase();//一致转为小写

[1] [2]  黑客接单网

相关文章

Pastebin Hacking新姿态:运用jQuery替换进行歹意软件传达

跟着各种网络技能不断发展,黑客关于网站进犯也总是不断改换战略以及通过相互之间的交流来改善进犯技能。而事实上就现在网站安全方面,面对的应战首要也正是来自于进犯技能不断的演进,使得防护也需不断晋级。在之...

网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE-黑客接单平台

网络抓取结构中运用最多的莫过所以scrapy,但是咱们是否考虑过这个结构是否存在缝隙妮?5年前曾经在scrapy中爆出过XXE缝隙,但是这次咱们发现的缝隙是一个LPE。 经过该缝隙能够获得shell,...

反击爬虫,前端工程师的脑洞能够有多大?

关于一张网页,咱们往往期望它是结构杰出,内容明晰的,这样搜索引擎才干精确地认知它。 而反过来,又有一些情形,咱们不期望内容能被容易获取,比方说电商网站的交易额,教育网站的标题等。由于这些内容,往往是...

电商安全无小事,怎么有效地抵挡 CSRF 进犯?

 现在,咱们绝大多数人都会在网上购物买东西。可是许多人都不清楚的是,许多电商网站会存在安全缝隙。比方乌云就通报过,国内许多家公司的网站都存在 CSRF 缝隙。假如某个网站存在这种安全缝隙的话,那么咱们...

TA505在最新攻击活动中使用HTML, RAT和其他技术-黑客接单平台

TA505以运用歹意垃圾邮件和不同的歹意软件来进犯金融安排和零售企业而臭名远扬。研究人员在曩昔2个月检测到与TA505相关的进犯活动。在该安排的最近活动中,运用了HTML附件来传达歹意XLS文件,XL...