`
wuneng94zui
  • 浏览: 34259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java写的一个防注入的filter

    博客分类:
  • java
阅读更多
1.首先编写一个PreventIntoScriptFilter.java,代码如下
package com.questionnaire.common.filter;

import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class PreventIntoScriptFilter implements Filter {

private static Log log = LogFactory.getLog(PreventIntoScriptFilter.class);

@Override
public void destroy() {

}

@SuppressWarnings("deprecation")
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
try {
String s = request.getQueryString();
if (s != null) {
// System.out.println("+++++++++++++++++++++++" + s);
Pattern pattern = Pattern
.compile("(?i)[|;$@'\"<>()+,\\\\#]|%7C|%3B|%24|%40|%27|%22|%3C|%3E|%28|%29|%2B|%2C|%5C|%23");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
String s3 = s
.replaceAll(
"(?i)[|;$@'\"<>()+,\\\\#]|%7C|%3B|%24|%40|%27|%22|%3C|%3E|%28|%29|%2B|%2C|%5C|%23",
"%20");
// System.out.println("+++++++++++++++++++++++" + s3);
response.sendRedirect(request.getRequestURL() + "?" + s3);
}
}
} catch (Exception e) {
log.error("PreventIntoScriptFilter 出错了:" + e);
}
chain.doFilter(request, response);
}

@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

}
2.在web.xml中添加如下配置即可
<filter>
<filter-name>preventIntoScriptFilter</filter-name>
<filter-class>com.questionnaire.common.filter.PreventIntoScriptFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>preventIntoScriptFilter</filter-name>
<url-pattern>*.view</url-pattern>
</filter-mapping>
0
2
分享到:
评论
5 楼 桥下一粒砂 2011-10-24  
黑名单?

4 楼 wuneng94zui 2011-10-21  
(?i)[|;$@'\"<>()+,\\\\#]|%7C|%3B|%24|%40|%27|%22|%3C|%3E|%28|%29|%2B|%2C|%5C|%23
(?i)表示不区分大小写匹配
[|;$@'\"<>()+,\\\\#]表示中括号内的字符都将被匹配,替换掉这些注入常用的字符
|%7C|%3B|%24|%40|%27|%22|%3C|%3E|%28|%29|%2B|%2C|%5C|%23表示中括号内字符的hex编码
3 楼 csuzm0613 2011-10-20  
里面一段正则看起来好费劲,楼主能解释下思路不,学习之
2 楼 wuneng94zui 2011-10-20  
就和*.jsp *.action一样
1 楼 cry615 2011-10-20  
*.view不知过滤的是那些东西啊

相关推荐

    java防sql注入攻击过滤器

    java防sql注入攻击过滤器 filter

    java 过滤器filter防sql注入的实现代码

    下面小编就为大家带来一篇java 过滤器filter防sql注入的实现代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    预防XSS攻击和SQL注入XssFilter

    一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...

    SQL注入过滤 (Java版)

    SQL 安全注入漏洞过滤器类 Java实现 Java类实现,以及配置文件web.xml

    主要使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验

    3,服务器白名单为单独的一个工具包,在文章最后给出 4,文章开发环境为JDK1.8,使用SpringBoot框架进行开发 5,文章会分享出整个Filter文件包,包含四个java文件: 5.1,public class CrosXssFilter implements ...

    防止sql注入的url过滤器【java filter】

    防止sql注入的url过滤器,简单配置即可!

    filter 防sql注入支持替换不合格字符

    网上很多不支持替换,自己改了个 可以替换不合格的字符。filter 别忘了在WBM.XML加上

    java sql注入l

    -- 防止SQL注入的过滤器 --&gt; 72 &lt;filter&gt; 73 &lt;filter-name&gt;antiSqlInjection&lt;/filter-name&gt; 74 &lt;filter-class&gt;com.tarena.dingdang.filter.AntiSqlInjectionfilter&lt;/filter-class&gt; 75 &lt;/filter&gt; 76 ...

    filter过滤器防止恶意注入

    简单过滤器防止恶意攻击 java中的用法

    java web Xss及sql注入过滤器.zip

    java web 过滤器防止Xss、sql注入,基于spring boot 2.0框架开发。

    防止sql注入demo

    java版防止sql注入的filter 如果好用,别忘记了来评论一下,受益于更多的人

    Java防止xss攻击附相关文件下载

    首先说一下思路,防止这种类似于注入攻击,就是使用拦截器(Filter)处理特殊字符或过滤特殊字符 今天介绍一个方法,利用覆盖Servlet的getParameter方法达到处理特殊字符的目的来解决(防止)Xss攻击 web.xml,需要的...

    使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验

    3,服务器白名单为单独的一个工具包,在文章最后给出 4,文章开发环境为JDK1.8,使用SpringBoot框架进行开发 5,文章会分享出整个Filter文件包,包含四个java文件: 5.1,public class CrosXssFilter implements ...

    JAVA防止XSS注入,附jar包

    防止xss注入,有antlr-runtime和xssProtect两个jar包,及相关的filter过滤器。

    sqlcore数据库防注入分析系统

    这个脚本将创建一个sqlcore的数据库,并导入数据 4.启动压缩包里面的tomcat登录系统 http://localhost/输入验证码就可以了 5.上传你的jdbc驱动到系统 sqlcore-文件管理---上传你的jdbc 6.创建 版本 sqlcore-驱动版本...

    XSS HTMLFILTER

    你还在为防范xss注入攻击而头疼吗,开源的XSS HTMLFILTER工具类能帮你过滤表单或链接中敏感的js html字符,有完整的源代码和代码示例 为您的系统增添xss的第一道防护

    Java开发工具类

    Class类工具 \Cookie工具类 \excel读取 工具类\Java如何生成验证码图片和点击刷新验证码\java获取当前月第一天和最后一天,上个月第一天和最后一天\java实现ftp文件的上传与下载\Json工具类 - JsonUtils.java\JS...

    Java Web开发视频教程

    Java的Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向对象实现请求和响应的流程...

    关于pdf文件xss攻击问题,配置xssFilter方法

    所有需要的文件均在里面,超有所值

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    1.7.1 创建第一个Java Web项目 1.7.2 将图片输出到JSP页面之中 1.8 疑难解惑 1.8.1 Tomcat端口被占用导致不能启动 1.8.2 Eelipse没有创建JSP项 1.9 精彩回顾 第2章 JavaWeb开发必修课 ——JSP语法 2.1 本章学习任务...

Global site tag (gtag.js) - Google Analytics