当前位置:主页 > 查看内容

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

发布时间:2021-04-26 00:00| 位朋友查看

简介:JSP Struts过滤xss攻击的解决办法 本方案采用struts2的拦截器过滤,将提交上来的参数转码来解决。 配置struts.xml package name="default" namespace="/" extends="struts-default, json-default" !-- 配置拦截器 -- interceptors !-- 定义xss拦截器 -- inte……

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

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

配置struts.xml

<package name="default" namespace="/"
    extends="struts-default, json-default">
    <!-- 配置拦截器 -->
    <interceptors>
      <!-- 定义xss拦截器 -->
      <interceptor name="xssInterceptor" class="...此处填写拦截器类名"></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.Map;

import org.apache.commons.lang3.StringEscapeUtils;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public 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();
  }
}

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


本文转载自网络,原文链接:https://m.jb51.net/article/114633.htm
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐