最近更新完 Chrome 120 版本浏览器后,在调试代码的时候遇到一个奇怪的问题,复制数据粘贴时怎么都粘贴不进去,还报警告 Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘allow pasting’ below to allow pasting.
如下图:
查了一下,这是 Chrome 120 版本开始的新功能,用于帮助抵御自跨站脚本攻击(Self-XSS),真的是天才!
火狐浏览器也有这样的功能:How to disable paste protection in Mozilla Firefox Developer Console?
问题解决
Chrome 120 版本开始加入了自跨站攻击警告,该功能默认开启,可以通过下面两种方法将其关闭:
1. 在控制台输入“allow pasting
”(允许粘贴)取消警告并启用粘贴功能。
2. 打开控制台 - Settings(设置)- Experiments(实验),搜索 XXS
,取消勾选 Show warning about Self-XSS when pasting code
。
关闭设置,点击顶部的 Reload DevTools 按钮,重新加载控制台,就可以正常粘贴了。
什么是自跨站攻击 (Self-XSS)?
Self-XSS(自跨站脚本攻击)是一种社会工程学攻击,一般通过诱骗用户在浏览器中执行恶意代码实现攻击的目的。
常规的 XSS 攻击通过 Web 应用中的漏洞注入恶意代码,而 Self-XSS 攻击则一般是由用户自己执行了潜在的恶意代码导致的。
Self-XSS 攻击通常是攻击者以某种理由,诱导用户将恶意代码复制粘贴到浏览器的开发者工具控制台中执行。比如:
向你承诺执行此代码,就可以使用隐藏的功能或获得虚拟奖励。
假装代码是进行安全测试或修复 bug。
承诺该代码允许黑客入侵网站以达到您的利益。
执行代码后,攻击者便可以控制您的帐号。这样一来,便可以:
窃取您的个人信息,如姓名、地址和信用卡号。
用您的账号发布未经授权的消息或评论。
掌控你的社交媒体帐号。
向其他用户传播恶意软件。
开发者工具何时会显示 self-XSS 警告?
开发者工具使用非常简单的启发法来决定是否显示 self-XSS 警告:它以用户个人资料的控制台历史记录为依据。
如果您的个人资料的控制台历史记录中至少有 5 个条目,则开发者工具将不会出现任何警告或弹出式窗口,也不会给您带来任何困扰。
控制台历史记录是您在控制台中输入和执行的命令的列表。当您将光标置于 Console 上并反复按向上键时,就会看到这些命令。
Self-XSS 警告是什么样的?
如果经验不足的用户尝试将代码粘贴到控制台中,系统会阻止此操作,并向控制台显示警告。(如图1)
可以在控制台输入“allow pasting
”(允许粘贴)取消警告并启用粘贴功能。
如果经验不足的用户将代码粘贴到开发者工具代码编辑器(例如 Sources 面板),用户体验会非常相似。Chrome 会弹出一个模态框,而不是警告。
Source 面板中的 self-XSS 模态对话框。
注意:仅关闭此对话框依旧无法执行粘贴操作。如要忽略警告,需要在控制台输入“allow pasting
”(允许粘贴)。
参考文献:
未经允许不得转载:前端资源网 - w3h5 » 新版Chrome控制台警告Self-XSS无法粘贴数据问题解决