去除危险字符的filter(包含转为中文)
来源:互联网 发布:ubuntu安装wireshark 编辑:程序博客网 时间:2024/06/10 21:42
写一个class :ResponseWappe
package com.xw.servlet;
import java.io.CharArrayWriter;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class ResponseWapper extends HttpServletResponseWrapper {
private CharArrayWriter out;
public ResponseWapper(HttpServletResponse response) {
super(response);
out=new CharArrayWriter();
}
public PrintWriter getWriter()
{
//new PrintWriter(outputstream)
return new PrintWriter(out);
}
public String toString()
{
return out.toString();
}
}
写filter
package com.xw.servlet;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CharacterFilter implements Filter {
public void destroy() {
encoding=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;
ServletOutputStream outStream=res.getOutputStream();
ResponseWapper wrapper=new ResponseWapper(res);
chain.doFilter(request, wrapper);
/**获取响应内容,此内容为网页中的所有内容,包括网页元代码**
*/
String resStr=wrapper.toString();
String newString="";
if(resStr.indexOf("bad")!=-1)
{
newString=resStr.replace("bad", "**");
outStream.write(newString.getBytes("UTF-8"));
}
else{
outStream.write(resStr.getBytes("UTF-8"));
}
outStream.flush();
outStream.close();
}
private String encoding=null;
public void init(FilterConfig fConfig) throws ServletException {
}
}
配置该filter
<filter>
<filter-name>CharacterFilter</filter-name>
<filter-class>com.xw.servlet.CharacterFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 去除危险字符的filter(包含转为中文)
- 在SpringMVC中使用过滤器(Filter)过滤容易引发XSS的危险字符
- URL传递中文字符,特殊危险字符的解决方案(仅供参考)urldecode、base64_encode
- url传递中文字符,特殊危险字符的解决方案
- 将日期转为中文字符的类
- 全角中文的英文字符转为半角的英文字符
- php过滤字符串中重复的字符(包含中文)
- c#写文件时去除文件名包含的非法字符
- 包含中文字符的URL编码问题
- 包含中文字符的URL编码问题
- 包含中文字符的URL编码问题
- 包含中文字符的URL编码问题
- JavaScrpit只保留中文(去除中文外的字符)
- 回文检测(包含中文与字符)
- 包含中文字符
- php中url传递中文字符,特殊危险字符的解决方法
- Utils帮助类(半角转为全角和去除特殊字符或将所有中文标号替换为英文标号)
- Java 去除非中文字符
- Web安全相关(四):过多发布(Over Posting)
- Qt+OpenCV实时显示在地图空间中的位置
- Android WebView 与 原生的交互
- pat 1116. Come on! Let's C
- 利用javascript在网页实现八数码启发式A*算法动画
- 去除危险字符的filter(包含转为中文)
- Web安全相关(三):开放重定向(Open Redirection)
- SpringAOP MethodInterceptor方法拦截器
- 南阳理工ACM 题目2 括号配对问题
- Hibernate关联关系
- 判断素数,并输出多少以内的所有素数
- Web安全相关(二):跨站请求伪造(CSRF/XSRF)
- android错误笔记----嵌套listview显示只有一行
- 能力方程式----职场指明灯