Chrome 开发者工具如何帮助抵御自跨站脚本攻击

Wolfgang Beyer
Wolfgang Beyer

什么是自跨站脚本攻击?

自跨站脚本攻击是一种社会工程学攻击,会诱使您在网络浏览器中执行恶意代码。常规 XSS 攻击依赖于 Web 应用中允许攻击者注入恶意代码的漏洞,而自 XSS 攻击则依赖于您自己潜在的代码执行操作。

自我 XSS 攻击通常涉及攻击者诱骗您将恶意代码复制并粘贴到浏览器的开发者工具控制台中。攻击者通常通过承诺某种奖励来实现此目的。这可能是:

  • 向您承诺使用该代码可以使用隐藏的功能或虚拟奖励。
  • 假装代码用于安全性测试或问题修复。
  • 承诺此类代码可允许黑客入侵网站来牟利。

一旦您执行了代码,攻击者就可以控制您的帐号。这样一来,攻击者便可以执行以下操作:

  • 窃取您的个人信息,如姓名、地址和信用卡号。
  • 以您的名义发布未经授权的消息或评论。
  • 轻松掌控你的社交媒体账号。
  • 向其他用户传播恶意软件。

Chrome 开发者工具如何尝试缓解自我 XSS 攻击?

允许用户将代码粘贴到开发者工具中,然后执行代码本身存在风险。但它也是 Chrome 开发者工具的核心功能之一。因此,我们必须在缓解潜在的自跨站脚本攻击与不干扰只想调试网站的开发者工作之间找到平衡。

开发者通常不会复制自己在网上找到的代码,将其粘贴到开发者工具中并执行,而不会先快速查看代码的作用。大多数开发者都非常清楚执行在网络中粗略的代码角落所面临的安全风险。

Chrome 开发者工具相信开发者能够了解其所执行的操作。我们不希望用户在复制和粘贴代码时拖慢速度或以任何方式分散他们的注意力。

我们认为,非开发者面临自我跨站脚本攻击的风险要高得多。为了保护您的安全,我们相信,如果您正在从事潜在危险活动,那么打扰您是可以接受且有益的。当 Chrome 开发者工具检测到经验不足的用户正在尝试将代码粘贴到开发者工具中时,会停止运行并显示警告。

开发者工具何时会显示自我 XSS 警告?

开发者工具使用非常简单的启发法来确定是否显示自我 XSS 警告:该策略基于您用户个人资料的控制台历史记录。

如果配置文件的控制台历史记录中至少有 5 个条目,则开发者工具不会向您显示任何警告或弹出式窗口来干扰您。控制台历史记录是您曾在控制台中输入和执行的命令的列表。当您将光标放在 Console 上并反复按向上箭头键时,您会看到这些命令。

自我 XSS 警告是什么样的?

当没有经验的用户尝试将代码粘贴到控制台中时,此操作会被阻止,并且控制台会显示警告。

控制台中的自我 XSS 警告。

您可以覆盖此警告并启用粘贴功能,但需要输入“允许粘贴”才能完成此操作。

当没有经验的用户将代码粘贴到开发者工具代码编辑器(例如 Sources 面板)中时,用户体验非常相似。您将看到一个模态对话框,而不是警告。

“Sources”面板中的 self-XSS 模态对话框。

再次说明,仅关闭此对话框不足以启用粘贴功能。要覆盖此警告,您需要在输入字段中输入“允许粘贴”。

是一次性设置吗?

是的,一旦您决定允许粘贴,就再也不必为自我 XSS 警告而烦恼了。

我们希望这种方法可以很好地平衡实用性和干扰性。通过增加阻力,可以提高您阅读警告的可能性,从而降低成功自跨跨站脚本攻击的可能性。

Chrome 开发者工具保留了一个标志,用于指定是否在 Chrome 个人资料中显示自我 XSS 警告。因此,如果您创建新的配置文件并立即开始将代码粘贴到开发者工具中,系统会阻止粘贴,并显示自我 XSS 警告。

能否为测试自动化停用该功能?

那么,自动化测试呢?许多测试工具会为每个测试运行创建全新的临时配置文件。因此,如果您使用开发者工具调试自动化测试,则一开始无法将内容粘贴到 Console 中。为防止出现这种情况,请使用 Chrome for Testing。Chrome for Testing 是 Chrome 的专用版本,专为测试和自动化而设计,自 XSS 警告处于关闭状态。

总结

您认为这个缓解自跨站脚本攻击的策略怎么样?如果您有任何意见或建议,请向此 bug 添加评论,或通过以下任一方法与我们联系。

尤其是如果您正在访问的网站通过控制台日志针对自我 XSS 攻击发出警告,我们很乐意谈谈如何调整我们的工作或衡量自我 XSS 缓解措施的影响。

下载预览渠道

请考虑将 Chrome Canary开发者版Beta 版用作您的默认开发浏览器。通过这些预览渠道,您可以访问最新的开发者工具功能,测试先进的网络平台 API,并在用户之前发现您网站上的问题!

与 Chrome 开发者工具团队联系

使用以下选项讨论博文中的新功能和变更,或与开发者工具相关的任何其他内容。

  • 请通过 crbug.com 提交建议或反馈。
  • 在开发者工具中使用更多选项   了解详情   > 帮助 > 报告开发者工具问题来报告开发者工具问题。
  • 请发送电子邮件至 @ChromeDevTools
  • 请对我们的开发者工具新功能 YouTube 视频或开发者工具提示 YouTube 视频发表评论。