Mozilla最近发布了一款名为Observatory的网站安全分析工具,意在鼓励开发者和系统管理员增强自己网站的安全配置。
该工具的用法非常简单:输入网站URL,即可访问并分析网站HTTP标头,随后可针对网站安全性提供数字形式的分数和字母代表的安全级别。该工具可分析大量安全配置,取决于所发现问题的严重程度,会通过扣分的方式对分数进行修正。该工具检查的主要范围包括:
-
Cookie
-
跨源资源共享(CORS)
-
内容安全策略
-
HTTP公钥固定(Public Key Pinning)
-
HTTP严格传输安全
-
重定向
-
子资源完整性(Subresource Integrity)
-
X-Content-Type-Options
-
X-Frame-Options
-
X-XSS-Protection
根据Mozilla对评分细节的介绍,每个网站默认可得到100分,随后将根据具体配置扣分或加分:
所有网站的基准分为100分,以此为基础进行扣分或加分。最低分为0分,但最高分没有上限。目前HTTP Observatory可给出的理论最高分为130。但是要注意,尽管用字母代表的安全等级范围和修正后的分数在本质上是随机的,但实际上这些评分源自业界专家的反馈,代表了某一网站通过测试或测试失败的可能性。
例如在CORS测试中,包含CORS标头但仅限于特定域名的网站不会因此被扣分,然而如果同一个网站在使用CORS XML文件的同时允许所有域名,将会扣掉50分,50分是修正分中可以扣除的最大分值。
Observatory由一个核心库,一个CLI,以及一个Web界面组成。CLI可供开发者将评分功能用脚本的方式纳入测试套件或部署逻辑中。对于只需要偶尔使用的用户,可以在Web界面上输入网站地址并设置其他选项。该工具还可以调用其他安全分析工具,例如securityheaders.io和hstspreload.appspot.com,借此提供更深入的检测分析。
在该工具的网站上,每个类别都提供了一个指向Mozilla相关话题文档的链接,开发者可以通过这个链接了解如何以更好的方式实现安全策略。Mozilla提供的CORS指南中称:
除非明确需要,否则不应出现[CORS信息]。此类信息的用例包括为JavaScript/CSS库和公开API端点提供托管的内容交付网络(CDN)等。如果使用了此类信息,必须将其锁定至尽可能少,正常使用绝对必要的源(Origin)和资源。
Observatory网站本身在该工具中获得了A+以及120分的成绩,而mozilla.org获得了D+以及40分的成绩。该项目已开源并已发布至GitHub。
英文原文:Mozilla’s Observatory Website Security Analysis Tool Available 作者 David Iffland