网站海外vps的jsp如何解决XSS攻击

已关闭留言

以网站海外vps为例,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>

此处省略naction

</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();

}

}

一诺网络提供的网站海外vps,是一款弹性计算服务类产品,其功能基本上与传统的x86物理服务器相当,具备分钟级交付效率,可快速部署和创建所需要的业务应用环境,服务器资源和配置支持弹性伸缩;拥有管理便捷、易于操作等诸多优点。可以极大降低用户的IT使用成本,用户无需亲自搭建基础设施、简化了运维和管理的日常工作量,使得用户能够更专注于自身的业务发展和创新。