向 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 Service Worker。打开开发者工具,导航至“Application”标签,然后在“Application”部分选择“Service Worker”。选中 Service Worker 设置中的“Bypass for network”。
    • 为了提供帮助,您可以对违反信任类型政策的行为启用自动断点。从设计上讲,如果检测到违反可信类型的行为,可信类型将会导致运行时错误。
    • 测试扩展程序工作流。如果出现违反可信类型的行为,您会在 Chrome 开发者工具开发者控制台中看到错误消息(如果已启用断点,则会命中断点)。
  • 如果您的扩展程序代码包含“可信类型”违规行为,请按照防范基于 DOM 的跨站脚本漏洞指南予以解决。您可以通过多种方式来让可信类型符合要求,例如移除违规代码、使用库(例如 safevaluesDOMPurify),或者创建可信类型政策

您可能还需要查看此框架和库列表,以帮助使您的扩展程序符合“可信类型”(您可能正在使用值得更新的旧版第三方库)。

为确保用户获得顺畅的体验,我们建议您在 YouTube 推出安全功能之前,将浏览器扩展程序设为符合“可信类型”标准。如果代码可信类型不符合要求,可能会导致第三方扩展程序的功能受损,因为浏览器会屏蔽对它们的 DOM 操作。