JSP Struts如何过滤xss攻击

网址简介:未填写

更新时间:10个月前

访问次数:103

详细介绍

对于 Struts如何过滤xss攻击的方法相信很多小伙伴们都是不知道的,那么我们现在就带着这个疑问去看看JSP Struts如何过滤xss攻击的内容吧。

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

以上就是关于JSP Struts如何过滤xss攻击的介绍,本方案采用struts2的拦截器过滤,将提交上来的参数转码来解决。

请发表您的评论