struts解决xss攻击的方法:
1.采用struts2的拦截器过滤,将提交上来的参数转码来解决,例如配置struts.xml,代码如下:
<packagename="default"namespace="/"
extends="struts-default,json-default">
<!–配置拦截器–>
<interceptors>
<!–定义xss拦截器–>
<interceptorname="xssInterceptor"class="…此处填写拦截器类名"></interceptor>
<!–定义一个包含xss拦截的拦截栈–>
<interceptor-stackname="myDefault">
<interceptor-refname="xssInterceptor"></interceptor-ref>
<interceptor-refname="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!–这个必须配置,否则拦截器不生效–>
<default-interceptor-refname="myDefault"></default-interceptor-ref>
<action>
…此处省略n个action
</action>
</package>
2.使用Java代码,拦截器实现类,例如:
importjava.util.Map;
importorg.apache.commons.lang3.StringEscapeUtils;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionInvocation;
importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;
publicclassXssInterceptorextendsAbstractInterceptor{
@Override
publicStringintercept(ActionInvocationinvocation)throwsException{
//TODOAuto-generatedmethodstub
ActionContextactionContext=invocation.getInvocationContext();
Map<String,Object>map=actionContext.getParameters();
for(Map.Entry<String,Object>entry:map.entrySet()){
Stringvalue=((String[])(entry.getValue()))[0];
entry.setValue(StringEscapeUtils.escapeHtml4(value));//将提交上来的字符串进行转码
//System.out.println((entry.getValue()));
}
returninvocation.invoke();
}
}
了解更多struts怎么解决xss攻击相关的解答,就上多想派(www.duoxiangpai.com)。
本文章由用户鲜淘网分享,版权归原作者,如侵犯,请联系(点这里联系),经核实,我们将第一时间删除。如若转载,请注明出处:https://www.duoxiangpai.com/64910.html