主页 > 知识库 > JSP Struts过滤xss攻击的解决办法

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

热门标签:Mysql连接数设置 科大讯飞语音识别系统 团购网站 银行业务 服务器配置 Linux服务器 电子围栏 阿里云

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();
    MapString, Object> map = actionContext.getParameters();
    for (Map.EntryString, Object> entry : map.entrySet()) {
      String value = ((String[])(entry.getValue()))[0];
      entry.setValue(StringEscapeUtils.escapeHtml4(value));//将提交上来的字符串进行转码
      //System.out.println((entry.getValue()));
    }
    return invocation.invoke();
  }
}

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

您可能感兴趣的文章:
  • 用js屏蔽被http劫持的浮动广告实现方法
  • JSP使用过滤器防止Xss漏洞
  • JS写XSS cookie stealer来窃取密码的步骤详解
  • JSP过滤器防止Xss漏洞的实现方法(分享)
  • JSP安全开发之XSS漏洞详解
  • 防止xss和sql注入:JS特殊字符过滤正则
  • 详解前端安全之JavaScript防http劫持与XSS

标签:枣庄 大理 萍乡 衡水 广元 江苏 蚌埠 衢州

巨人网络通讯声明:本文标题《JSP Struts过滤xss攻击的解决办法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266