最近网络安全更加重要,各大对外服务的网站都被网信办提醒及时打补丁补漏洞。
如果应用使用的服务器是 tomcat,则如下 3 个漏洞常常是呈现三联漏洞一起出现:
点击劫持:X-Frame-Options头缺失漏洞,
缺失"X-XSS-Protection"头漏洞,
缺失"X-Content-Type-Options"头漏洞
各种查阅资料,最终发现其实就是对同一个过滤器类做 3 个参数的配置。按如下步骤操作配置:
1. 如果用的是 TOMCAT8 以上版本,你就跳过此步,因为 TOMCAT 本身就有这个过滤器类了:apache-tomcat-8.5.66\lib\catalina.jar
如果用的是 TOMCAT8 以下版本,你就下载一个 TOMCAT8 以上版本, 找到文件 apache-tomcat-8.5.66\lib\catalina.jar ,复制到你的 TOMCAT 相同目录下。
2. 在 web.xml 文件中(应用下自己专用的也可以,conf/web.xml 文件中整个应用服务器全局的也可以),配置如下一个filter ,即可:
<filter> <!-- 添加,网信办安全漏洞 -->
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported> <!-- 漏洞 【5】 -->
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<xssProtectionEnabled>true</xssProtectionEnabled> <!-- 漏洞 【6】 -->
<BlockContentTypeSniffingEnabled>true</BlockContentTypeSniffingEnabled> <!-- 漏洞 【7】 -->
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- 网信办安全漏洞 结束 -->
容易犯的错误(也称踩的坑)为:
1. 因为网信办提供的修复建议中,是分别针对 3 个漏洞给的配置代码建议,而 3 个配置的过滤器用的是同一个名字,如果在 web.xml 文件中原样复制 3 个配置过滤器段落,则会导致 3 个过滤器重名,应用启动报错。 此时只要将 3 个参数配置都放到同一个过滤器中去定义,就没这个问题了。
2. 启动成功后,检查是否生效:
1)用 CHROME 浏览器,右键菜单“检查”(实际上是打开“开发者工具”),选点“network”--all ,然后访问你的网站;
2)你会看到一些类似图片呀之类的对象,出现在左下窗口中,随便点一个,就能在右下窗口中显示其信息。选看“headers” 信息,就是请求头;
3)会看到你的服务器响应的请求头中,包含了:
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
By the way: 网信办的漏洞还有一个是 “缺失"Content-Security-Policy"头漏洞” ,百度了一下,如下这篇文章应该是很有参考价值: HTTP Content-Security-Policy缺失,快速解决
https://blog.csdn.net/kzhzhang/article/details/116451031?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase