jsp如何解决XSS攻击 jsp xss攻击

主机教程 建站分享 2年前 (2022-12-22) 197次浏览

文章摘要:jsp如何解决XSS攻击 jsp xss攻击

jsp解决XSS攻击的方案: 1.采用struts2的拦截器过滤,将提交上来的参数转码来解决,例如配置stru […]

jsp解决XSS攻击的方案:

1.采用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>

2.使用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如何解决XSS攻击 jsp xss攻击
文章链接:http://www.7966.org/post/16696.html
转载请注明出处

喜欢 (0)