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(); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
戳蓝字“ CSDN云计算 ”关注我们哦 作者 | 刘丹 出品 | CSDN云计算IDCSDNcloud ...
堆 Heap Heap:可以迅速找到一堆数中的 最大 或者 最小 值的数据结构。 将根节点...
IViewLocationExpander API ExpandViewLocations Razor视图路径,视图引擎会搜索...
WebService端代码 复制代码 代码如下: /// summary /// 上传文件到远程服务器 //...
详解Spring mvc ant path的使用方法 概要: 任何一个WEB都需要解决URL与请求处理...
1.现在复习的感觉就是:马上要有一大波僵尸涌过来,但老子连向日葵都还没种! 2...
20210323第一家量产国产化蓝牙AOA高精度定位基站生态合能培训会上海站现场直播下...
项目背景 最近项目里有个webpack版本较老的项目,由于升级和换框架暂时不被leade...
这里尊托云数小编参考了几篇文章特为大家整理下,用到的朋友多支持一下了。 进行...
Epoll 是个很老的知识点,是后端工程师的经典必修课。这种知识具备的特点就是研...