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>
分享到:
相关推荐
本篇文章将深入探讨如何在Java中实现一个防SQL注入的过滤器,以及它的重要性。 SQL注入的原理是利用应用程序处理用户输入数据时的不足,将恶意SQL语句嵌入到原本合法的查询中。例如,如果一个登录接口的用户名字段...
Java 防止 SQL 注入是一个非常重要的安全问题。SQL 注入攻击是黑客最常用的攻击方式之一,它可以让攻击者访问或修改数据库中的敏感信息。因此,防止 SQL 注入是 Java 开发者必须注意的安全问题。 1.杜绝 SQL 拼接 ...
本篇将详细探讨Java环境下如何实现一个SQL注入过滤器,并结合`web.xml`配置文件来部署和应用。 首先,我们需要了解SQL注入的基本原理。当用户输入的数据未经验证或转义就直接拼接到SQL查询语句中时,就可能发生SQL...
首先,我们需要创建一个实现了`javax.servlet.Filter`接口的类,例如名为`XSSFilter`。这个类将负责拦截请求并处理可能存在的SQL注入风险。下面是一个简单的`XSSFilter`示例: ```java public class XSSFilter ...
为了解决这一问题,我们可以利用Java的Filter机制来创建一个防止SQL注入的URL过滤器。下面将详细介绍这个过滤器的工作原理、配置方法以及如何有效地防止SQL注入。 首先,我们需要理解SQL注入的基本概念。SQL注入是...
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...
Java Web 开发中,安全是至关重要的一个环节。XSS(Cross Site Scripting)和 SQL 注入是两种常见的Web应用程序安全漏洞,它们可能导致数据泄露、用户权限被滥用甚至整个系统的瘫痪。本项目"java web Xss及sql注入...
我们可以创建一个自定义Filter,如`PreventSQLInject.java`,在这个Filter中,对请求参数进行检测和净化: - 检查请求参数是否包含SQL关键字或特殊字符。 - 使用正则表达式去除或转义可能的SQL注入字符。 - 如果...
本文将详细分析一个用于防止SQL注入的Java过滤器类——`Checksql`。 #### 类结构与功能 `Checksql`类实现了`javax.servlet.Filter`接口,主要负责对HTTP请求中的参数进行检查,以确保其不包含可能导致SQL注入攻击...
3,服务器白名单为单独的一个工具包,在文章最后给出 4,文章开发环境为JDK1.8,使用SpringBoot框架进行开发 5,文章会分享出整个Filter文件包,包含四个java文件: 5.1,public class CrosXssFilter implements ...
### JAVA项目实践:URL存在的跨站漏洞与注入漏洞解决方案 #### 一、跨网站脚本(XSS)概述 跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本攻击)是一种常见的安全漏洞攻击方式,尤其针对网站应用程序。...
网上很多不支持替换,自己改了个 可以替换不合格的字符。filter 别忘了在WBM.XML加上
你可以创建一个自定义Filter,对所有请求参数进行遍历,并对特殊字符进行转义。 2. **覆盖Servlet的getParameter方法**: Servlet API允许覆盖`getParameter`方法,这样在获取请求参数时就可以添加额外的安全检查...
-- 防止SQL注入的过滤器 --> 72 <filter> 73 <filter-name>antiSqlInjection</filter-name> 74 <filter-class>com.tarena.dingdang.filter.AntiSqlInjectionfilter</filter-class> 75 </filter> 76 ...
- **执行流程**:当请求到达时,Filter首先创建一个`XssHttpServletRequestWrapper`实例,然后将该实例传递给Filter链中的下一个组件。这样做的目的是确保所有后续组件都使用了经过过滤的请求对象。 - **实现细节**...
在Java编程领域,"Java登录注册列表小项目和Filter测试代码"是一个常见的实践项目,它涵盖了Web应用程序开发中的基础功能,如用户身份验证、权限控制以及数据操作。在这个项目中,开发者通常会创建一个简单的用户...
Filter本身并不是一个Servlet,因此它不能直接生成响应,但它可以在请求到达目标Servlet之前对其进行预处理,或者在请求离开Servlet后对其进行后处理。 Filter的功能非常强大,可以实现以下几种操作: 1. **在...
`Filter`作为Java Web开发中的一个重要组成部分,提供了强大的功能和灵活性。通过合理地设计和使用`Filter`,可以极大地提升应用程序的安全性和用户体验。理解`Filter`的工作原理及其配置方法对于Java Web开发者来说...
在本篇文章中,我们将分析一个用于JAVA中的防止SQL注入攻击的类——`StringUtils`,该类包含了用于过滤用户输入以防止SQL注入的功能,并且还提供了一些辅助方法来增强应用的安全性。 #### 二、源代码解析 ##### 1....
4. **Filter过滤器**:在`web.xml`配置文件中,可以定义一个名为`XSSFilter`的过滤器,该过滤器会在每个HTTP请求到达控制器之前拦截并处理潜在的XSS注入。过滤器可以应用到所有请求或者特定的URL模式。 5. **使用...