0514-86177077
9:00-17:00(工作日)
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(); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
标签:自贡 山南 吉林 开封 白银 铜川 临汾 乌兰察布
上一篇:JSP 自定义注解及记录操作日志
下一篇:jsp用过滤器解决中文乱码问题的方法