Introducing the MDN HTTP Observatory title, with a pretty starry night sky background, a telescope, and a security shield

介绍 MDN HTTP 观测站

作者头像Hermina Condei阅读时长 7 分钟

在它的生命周期中,Mozilla 的 HTTP 观测站工具已经扫描了超过 690 万个网站,为开发人员提供了有用的、可操作的见解,说明他们如何改进 Web 安全并保护他们的网站免受潜在攻击者的攻击。

HTTP 观测站测试网站是否符合安全最佳实践,主要涉及正确使用 HTTP 标头。扫描完成后,它会提供一份报告,告诉用户其网站的表现如何,包括总分和等级,并链接到解释他们需要采取哪些措施来提高其安全的文档。

今天,我们很高兴地宣布,HTTP 观测站的新家是 MDN!这篇博文解释了该工具背后的历史,我们是如何走到今天的,迁移对观测站和 MDN 意味着什么,以及观测站测试什么。

立即查看 新的 HTTP 观测站

MDN HTTP 观测站的简要历史

2016 年,时任 Mozilla 安全工程师的 April King 宣布了原始版本的 HTTP 观测站工具。最初它被设想为一个内部测试工具,帮助 Mozilla 开发人员将安全最佳实践应用于他们自己的网站,但 April 在网上四处查看时感到沮丧,发现很少有网站应用这些最佳实践,于是它将 HTTP 观测站打包成任何人都可以使用的网站。

从那时起,HTTP 观测站的受欢迎程度爆炸式增长,总共扫描了超过 690 万个网站,扫描次数达到了 4700 万次!Mozilla 的基础设施安全团队定期维护该工具,以改进服务,随着安全最佳实践和标准的更新,添加新的测试,以及随着旧技术的过时,删除与旧技术相关的测试。

然而,这并非全部故事。HTTP 观测站的成功取决于两件事。

  • 首先,该网站使改进网站安全的过程变得有趣——每组测试结果都会附带分数和等级,多年来,开发人员对实现有时难以捉摸的 A+ 观测站评级表现出了极大的热情!
  • 其次,HTTP 观测站帮助开发人员理解网站安全要求——这些要求通常比较模糊,难以理解——通过提供可理解的反馈来解释如何修复其十几个测试中强调的问题。相关文档可以在一个地方找到。

将 HTTP 观测站迁移到 MDN

那么是什么促使迁移到 MDN 呢?简而言之,MDN 和 HTTP 观测站相得益彰——它们都以开发人员教育和改善互联网健康为核心驱动原则。

更长一点的答案是,HTTP 观测站是 Web 和安全社区中一个备受尊重的工具,但它已经有一段时间没有进行重大更新了。Mozilla 决定该工具应该得到发展,并找到新的受众群体,以从它所包含的安全知识中获益。

MDN 是一个受欢迎的网站,拥有大量可以从这些知识中获益的 Web 开发人员,因此它似乎是一个完美的新的家园。此外,我们的团队非常高兴能够更新该工具的 UI、功能和文档,使其更新并更加完善。此次更新是与 Mozilla 的基础设施和安全风险团队合作完成的;他们提供了专家建议,帮助我们自信地更新 HTTP 观测站测试和文档。

请查看 MDN 上的 HTTP 观测站,以及它附带的 实用安全实施指南

HTTP 观测站测试什么?

HTTP 观测站测试以下安全功能

常见问题

我应该实施所有建议吗?

是的,如果可能,您应该这样做。无法以编程方式确定任何给定网站的风险级别。但是,尽管您的网站可能风险不高,但仍然值得了解观测站强调的防御性安全标准,并在任何可能的地方实施它们。

如果我获得了 A+ 等级,是否意味着我的网站是安全的?

我们很想说任何获得 A+ 观测站等级的网站都是完全安全的,但我们无法测试很多安全考虑因素。观测站测试针对 跨站脚本 (XSS) 攻击、中间人 (MiTM) 攻击、跨域信息泄露、不安全的 cookie内容分发网络 (CDN) 泄露以及不正确颁发的证书的预防措施。

但是,它不测试过时的软件版本、SQL 注入 漏洞、易受攻击的内容管理系统插件、不正确的密码创建或存储等等。这些与观测站确实测试的问题一样重要,网站运营商不应该仅仅因为他们在观测站上获得了高分就忽略它们。

我可以扫描非网站,例如 API 端点吗?

HTTP 观测站旨在扫描网站,而不是 API 端点。它可以用于 API 端点,观测站期望的安全标头不应该对仅返回数据的 API(例如 JSON 或 XML)造成任何负面影响。但是,结果可能无法准确反映 API 的安全态势。API 端点通常应该只通过 HTTPS 访问。API 端点的推荐配置是

http
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'
Strict-Transport-Security: max-age=63072000
X-Content-Type-Options: nosniff

其他人可以看到我的测试结果吗?

任何人都可以选择扫描任何域,每个域的扫描历史记录都是公开的。但是,HTTP 观测站不存储与每次扫描相关的用户数据。在旧版本的 HTTP 观测站中,用户可以选择将他们的扫描设置为“公开”或保持私密(默认情况下),并且有一个“最近扫描”列表,其中列出了域名。“最近扫描”是用户可能希望选择退出的主要功能,但它不再受支持,因此现在没有理由提供“公开”标志。

迁移何时发生?

新的 HTTP 观测站于 2024 年 7 月 2 日在 MDN 上发布。 旧的 Mozilla 观测站——包含 HTTP 观测站以及其他工具,例如 TLS 观测站、SSH 观测站和第三方测试——已被弃用,并将于 2024 年 9 月停用。

注意:历史扫描数据已保留,并包含在每个域提供的扫描历史记录中。

迁移后发生了哪些变化?

MDN 团队已

  • 更新了用户体验,以改善网站的外观并使其更易于使用。例如,测试结果中强调的建议全部显示在一起,而不是一次显示一个。
  • 更新了 附带的文档,使其更新并提高可读性。
  • 更改了“重新扫描”复选框及其底层机制
    • 不再有重新扫描参数。
    • 一个网站只能扫描一次,并且每 60 秒返回一个新结果。
    • 如果先前的扫描数据超过 24 小时,则深度链接到报告将启动重新扫描。
  • 更新了 测试,使其与最新的安全最佳实践保持一致
    • 删除了过时的 X-XSS-Protection 测试。
    • 删除了过时的 Flash 和 Silverlight (clientaccesspolicy.xmlcrossdomain.xml) 嵌入测试。
    • 添加了 Cross-Origin-Resource-Policy (CORP) 测试。
    • 更新了 Referrer-Policy 测试,以更新 referrer-policy-unsafe 的分数修饰符并删除 referrer-policy-no-referrer-when-downgrade 结果。

HTTP 观测站 API 是否已更新以使用新的测试?

还没有。API 将继续使用旧的测试基础设施一段时间,因此您会在 API 返回的测试分数和网站之间看到一些细微的差异。API 将在将来的迭代中更新以使用新的测试。

新的 HTTP 观测站是否提供特定的 TLS 和证书数据?

以前的观测站网站包含包含 TLS 和证书分析数据的特定结果选项卡。新的网站没有,目前没有计划包含这些功能:它明确地关注 HTTP 数据。

(重定向) HTTP 重定向测试 评估了什么?

此测试检查您的 Web 服务器是否在执行任何其他重定向之前,在其相同主机名上从 HTTP 到 HTTPS 进行初始重定向。这允许正确应用 HTTP Strict-Transport-Security (HSTS) 标头。

例如,以下重定向顺序是正确的

http://example.comhttps://example.comhttps://www.example.com

错误的(并且会受到惩罚)的重定向看起来像这样

http://example.comhttps://www.example.com

(X-Frame-Options)如果我想允许我的网站被嵌入框架中,该怎么办?

只要您使用 Content-Security-Policy frame-ancestors 指令明确地表达您的偏好,您将通过 X-Frame-Options 测试。例如,要允许您的网站被任何 HTTPS 网站嵌入框架

http
Content-Security-Policy: frame-ancestors https:

试一试

我们非常希望您 尝试使用 MDN 上的 HTTP Observatory!立即访问它,扫描您的网站,并填写我们的 HTTP Observatory 调查,让我们知道您对体验的看法。

HTTP Observatory 的文档(与测试结果链接)现在也在 MDN 上的 安全实施指南 部分。再次,请通读并告诉我们如何改进它。

关注 MDN 最新消息

订阅 MDN 时事通讯,不错过任何有关最新 Web 开发趋势、技巧和最佳实践的更新。