本文作者:佚名

JSP Struts过滤xss攻击的解决办法

佚名 2019-04-25 886
摘要:JSP Struts过滤xss攻击的解决办法本方案采用struts2的拦截器过滤,将提交上来的参数转码来解决。 配置struts.xml<package name


JSP Struts过滤xss攻击的解决办法

本方案采用struts2的拦截器过滤,将提交上来的参数转码来解决。

配置struts.xml

<package name="default" namespace="/"    extends="struts-default, json-default">    <!-- 配置拦截器 -->    <interceptors>      <!-- 定义xss拦截器 -->      <interceptor name="xssInterceptor" ></interceptor>      <!-- 定义一个包含xss拦截的拦截栈 -->      <interceptor-stack name="myDefault">        <interceptor-ref name="xssInterceptor"></interceptor-ref>        <interceptor-ref name="defaultStack"></interceptor-ref>      </interceptor-stack>    </interceptors>    <!-- 这个必须配置,否则拦截器不生效 -->    <default-interceptor-ref name="myDefault"></default-interceptor-ref>    <action>    ...此处省略n个action    </action>  </package>

Java代码,拦截器实现类

import java.util.Mapimport org.apache.commons.lang3.StringEscapeUtilsimport com.opensymphony.xwork2.ActionContextimport com.opensymphony.xwork2.ActionInvocationimport com.opensymphony.xwork2.interceptor.AbstractInterceptorpublic class XssInterceptor extends AbstractInterceptor{  @Override  public String intercept(ActionInvocation invocation) throws Exception {    // TODO Auto-generated method stub    ActionContext actionContext = invocation.getInvocationContext()    Map<String, Object> map = actionContext.getParameters()    for (Map.Entry<String, Object> entry : map.entrySet()) {      String value = ((String[])(entry.getValue()))[0]      entry.setValue(StringEscapeUtils.escapeHtml4(value))//将提交上来的字符串进行转码      //System.out.println((entry.getValue()))    }    return invocation.invoke()  }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

未经允许不得转载:

作者:佚名,标题:JSP Struts过滤xss攻击的解决办法,原文地址:https://www.vfjianzhan.com/java/201904/2841.html发布于2019-04-25
转载或复制请以超链接形式并注明出处DESTOON

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏