- 浏览: 59319 次
- 性别:
- 来自: 深圳
文章分类
最新评论
package com.jingdu.common;
import java.io.IOException;
import java.io.PrintWriter;
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;
public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;
public void init(FilterConfig config) throws ServletException {
// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}
@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";
//设置请求编码格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循环读取参数
while (params.hasMoreElements()){
param = (String) params.nextElement(); //获取请求中的参数
String[] values = servletrequest.getParameterValues(param);//获得每个参数对应的值
for (int i = 0; i < values.length; i++) {
paramValue = values[i];
//转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("小李","***");
//这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。
values[i] = paramValue;
}
//把转义后的参数重新放回request中
request.setAttribute(param, paramValue);
}
//继续向下 执行请求,如果有其他过滤器则执行过滤器
arg2.doFilter(request, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
}
import java.io.IOException;
import java.io.PrintWriter;
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;
public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;
public void init(FilterConfig config) throws ServletException {
// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}
@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";
//设置请求编码格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循环读取参数
while (params.hasMoreElements()){
param = (String) params.nextElement(); //获取请求中的参数
String[] values = servletrequest.getParameterValues(param);//获得每个参数对应的值
for (int i = 0; i < values.length; i++) {
paramValue = values[i];
//转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("小李","***");
//这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。
values[i] = paramValue;
}
//把转义后的参数重新放回request中
request.setAttribute(param, paramValue);
}
//继续向下 执行请求,如果有其他过滤器则执行过滤器
arg2.doFilter(request, response);
}
public void destroy() {
// TODO Auto-generated method stub
}
}
发表评论
-
java中获取IP的方法
2013-05-08 17:22 733String ip = request.getHeader(& ... -
java 线程安全
2013-01-30 00:17 677java线程安全:就是指线程同步,就是当线程对一个线程安全方法 ... -
java读取文件方法大全
2012-12-10 20:18 655public class ReadFromFile { ... -
JDBC驱动及连接数据库url
2012-11-21 14:16 818/* * SQL SERVER相关参数配置 */ D ... -
java.lang.ClassCastException: org.apache.struts.taglib.bean.CookieTei异常
2012-07-18 11:24 756报java.lang.ClassCastException: ... -
http包详解
2012-07-17 11:46 815一、超文本传输协议及HTTP包 HTTP协议用于在In ... -
正则表达式
2012-06-20 15:53 648正则表达式教程 http://blog.sina ... -
java内部类的作用
2012-06-20 10:49 714一、 定义 放在一个类的内部的类我们就叫内部类。 二、 作 ... -
java中变量初始化详解
2012-05-30 20:59 868类变量(类静态成员):类被加载时产生;它的生存期是类的生存期; ... -
ibatis jdbcType
2012-05-21 19:28 2072package org.apache.ibatis.type; ... -
将class文件打包成jar包,里面含有文件夹
2012-05-15 13:11 1007java打包命令:jar cfm cmb.jar F:\cm\ ... -
Project is missing required source folder:’gen’
2012-04-26 15:15 1578错误如图: 这个错误比较明显,就是 ... -
读取properties文件
2012-03-20 00:11 624import java.io.BufferedInputStr ... -
JDBC的标准连接
2012-03-19 18:01 872package com.khb.dao; import ja ... -
Java常用日期封装
2012-03-18 21:43 771/** * all rights reserved ... -
java中的double类型,结果很有意思哦
2012-03-03 10:44 1440public class TestDouble{ public ... -
java自测题
2012-03-03 10:40 567北京理工大学java期末考试题 http://www.l99 ... -
真正最正确的用BAT运行JAVA不显示DOS窗口(连闪一下都不闪)
2012-02-24 10:53 770今天写一个独立于RCP项目之外的SWT小工具,需要用批处理启动 ... -
Java中的native修饰符
2012-02-23 11:59 709一. 什么是Native Method 简单地讲,一个N ... -
如何将 一个字符串 转化成 字符数组
2012-02-23 11:43 1322public static void main(String[ ...
相关推荐
配置在web.xml中,可以防止SQL注入,可以自己定义一些需要过滤的特殊字符
java防sql注入攻击过滤器 filter
java 干货,对接口参数进行中的特殊字符,如insert select * % 等进行判断,进行过滤.
对项目中的所有参数去除前后空格...可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded 内部转发不在过滤之内。
百度编辑器提交过滤标签方法
filter中过滤特殊字符,对页面输入的内容进行过滤
对request请求进行拦截,对请求...-- 特殊字符过滤 --> <filter-name>sqlFilter <filter-class>weixin.idea.waiting.cq.controller.JsFilter <filter-name>sqlFilter <url-pattern>/* </filter-mapping>
首先说一下思路,防止这种类似于注入攻击,就是使用拦截器(Filter)处理特殊字符或过滤特殊字符 今天介绍一个方法,利用覆盖Servlet的getParameter方法达到处理特殊字符的目的来解决(防止)Xss攻击 web.xml,需要的...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...