JSP Struts过滤xss攻击的解决办法本方案采用struts2的拦截器过滤,将提交上来的参数转码来解决。 配置struts.xmlpackage name="default" namespace="/" extends="...
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();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
沃梦达教程
本文标题为:JSP Struts过滤xss攻击的解决办法


基础教程推荐
猜你喜欢
- SpringBoot嵌入式Web容器原理与使用介绍 2023-06-17
- 用javascript制作qq注册动态页面 2023-12-16
- SpringBoot 2.5.5整合轻量级的分布式日志标记追踪神器TLog的详细过程 2023-06-17
- springboot中request和response的加解密实现代码 2022-12-08
- java 解决Eclipse挂掉问题的方法 2024-01-10
- 详解http请求中的Content-Type 2023-07-31
- Spring MVC数据绑定方式 2023-06-30
- 关于@MapperScan包扫描的坑及解决 2023-04-16
- jsp hibernate的分页代码第3/3页 2024-01-11
- JSP servlet实现文件上传下载和删除 2023-07-30