向 YouTube 添加可信类型

Patrick Kettner
Patrick Kettner

具体变化

我们正在使用受信任类型来加强 YouTube 的客户端安全性。这将为第三方扩展程序使用的文档对象模型 (DOM) API 提供额外的保护层。

受信任的类型要求第三方浏览器扩展程序在向 DOM API 分配值时使用类型化对象而非字符串。自 2024 年 7 月 25 日起,不符合可信类型安全要求的浏览器扩展程序在强制执行后可能会停止运行,因此我们建议相应的开发者遵循防范基于 DOM 的跨网站脚本漏洞指南,确保浏览器扩展程序与新的 YouTube 安全标准兼容。

重要性

在 YouTube 上启用可信类型可保护用户免受大量跨站脚本攻击 (XSS) 的侵害。它进一步增强了我们的高级数据保护控件,可保护用户和数据在 YouTube 上每天使用的更多扩展程序中安全无虞。

我该怎么做

观看者和创作者

无需执行任何操作。如果遇到问题,用户可以暂时停用导致问题的浏览器扩展程序,并告知相应的开发者。如果您在播放 YouTube 视频时遇到问题,建议您在停用了所有扩展程序的无痕式窗口中打开 YouTube。如需了解更多问题排查步骤,请参阅我们的帮助中心文章

开发者

  • 如果您的扩展程序会修改 HTML,并且用户可以在 youtube.com 上使用该扩展程序,我们建议您按照以下步骤检查您的扩展程序是否兼容,以及在功能强制执行后能否正常运行:
    • 借助 Chrome 开发者工具替换响应标头。为此,请将以下内容添加到 youtube.com 的本地标头替换项中:
      Content-Security-Policy: require-trusted-types-for 'script'
    • 绕过 YouTube 服务工件。打开开发者工具,前往“Application”标签页,然后在“Application”部分中选择“Service workers”。在服务工作器设置中,选中“Bypass for network”。
    • 为方便起见,您可以在出现可信类型违规时启用自动断点。出于设计目的,如果检测到 Trusted Types 违规问题,Trusted Types 将导致运行时错误。
    • 测试扩展程序工作流。如果发生可信类型违规问题,您会在 Chrome 开发者工具的开发者控制台中收到错误消息(如果您已启用断点,还会收到断点命中消息)。
  • 如果您的扩展程序代码包含可信类型违规问题,请按照防范基于 DOM 的跨站脚本攻击漏洞指南中的说明解决这些问题。您可以通过多种方式确保符合可信类型要求,例如移除违规代码、使用库(例如 safevaluesDOMPurify)或创建可信类型政策

您可能还需要查看此框架和库列表,其中列出了有助于使您的扩展程序符合可信类型要求的库(您可能正在使用值得更新的旧版第三方库)。

为确保用户获得流畅的体验,建议您在 YouTube 上推出此安全功能之前,先让浏览器扩展程序符合“受信任类型”要求。如果未使代码符合可信类型要求,可能会导致第三方扩展程序的功能出现故障,因为浏览器会阻止其 DOM 操作。