xss攻击 java过滤器_Java Web使用过滤器防止Xss攻击,解决Xss漏洞

Java Web使用过滤器防止Xss攻击,解决Xss漏洞

发布时间:2018-11-11 10:41,

浏览次数:286

, 标签:

Java

Web

Xss

web.xml添加过滤器

xssFilter

com.quickly.exception.common.filter.XssFilter

xssFilter*

过滤器代码

package com.quickly.exception.common.filter; import javax.servlet.*; import

javax.servlet.http.HttpServletRequest; import java.io.IOException; /** *

作用:Xss过滤器 * 作者:Tiddler * 时间:2018/11/11 10:21 * 类名: XssFilter **/ public class

XssFilter implements Filter { @Override public void init(FilterConfig

filterConfig) throws ServletException { } @Override public void

doFilter(ServletRequest servletRequest, ServletResponse servletResponse,

FilterChain filterChain) throws IOException, ServletException { //使用包装器

XssFilterWrapper xssFilterWrapper=new XssFilterWrapper((HttpServletRequest)

servletRequest); filterChain.doFilter(xssFilterWrapper,servletResponse); }

@Override public void destroy() { } }

过滤器包装器代码

package com.quickly.exception.common.filter; import

org.springframework.web.util.HtmlUtils; import

javax.servlet.http.HttpServletRequest; import

javax.servlet.http.HttpServletRequestWrapper; /** * 作用:防Xss过滤器[包装器] *

作者:Tiddler * 时间:2018/11/11 10:20 * 类名: XssFilterWrapper **/ public class

XssFilterWrapper extends HttpServletRequestWrapper { public

XssFilterWrapper(HttpServletRequest request) { super(request); } /** *

对数组参数进行特殊字符过滤 */ @Override public String[] getParameterValues(String name) {

if("content".equals(name)){//不想过滤的参数,此处content参数是 富文本内容 return

super.getParameterValues(name); } String[] values =

super.getParameterValues(name); String[] newValues = new String[values.length];

for (int i = 0; i < values.length; i++) { newValues[i] =

HtmlUtils.htmlEscape(values[i]);//spring的HtmlUtils进行转义 } return newValues; } }

总结:

主要是使用Java

Web的过滤器,将所有的request请求参数修改(主要是把存在xss风险的标签转义,如:),在转义时我没有自己实现替换与转义,是直接使用的spring自带的HtmlUtils类的htmlEscape方法转义的,方便很多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值