1、跨站点脚本编制(XSS)
解决方法:attribute 可以通过过滤器(Filter)对参数进行特殊字符转义, paramenter可以继承 HttpServletRequestWrapper 对参数进行转义以及规则处理
2、关于请求头部安全问题的解决方法(仅供参考)
<!-- 解决“Content-Security-Policy”头缺失或不安全 -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self';script-src 'self';object-src 'self'"/>
<!-- 解决“X-Content-Type-Options”头缺失或不安全 -->
<meta http-equiv="X-Content-Type-Options" content="nosniff" />
<!-- 解决“X-XSS-Protection”报头缺失或不安全 -->
<meta http-equiv="X-XSS-Protection" content="1; mode=block" />
关于请求头部安全问题的解决方法的另一种形式是通过配置web.xml来进行
tomcat的web.xml中增加:
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<init-param>
<param-name>hstsEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
<init-param>
<param-name>htstIncludeSubDomains</param-name>
<param-value>true</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
HttpHeaderSecurityFilter这个类需要用到tomcat中的catalina.jar等相关的jar包,有些低版本的tomcat中是没有这些jar包的,可以通过高版本(我用的8.5的是有这些jar包的)的tomcat找到相应的jar包。