所以很明显,由于最近的诈骗,开发者工具被人们用来发布垃圾邮件,甚至被用来"黑客"账户.Facebook屏蔽了开发者工具,我甚至不能使用控制台.

在此处输入图像描述

他们是怎么做到的??但Facebook已经证明他们错了.

只要进入Facebook,打开开发者工具,在控制台中输入一个字符,就会弹出这个警告.不管你投入什么,都不会被执行.

这怎么可能?

他们甚至在控制台中屏蔽了自动完成功能:

在此处输入图像描述

推荐答案

我是Facebook的安全工程师,这是我的错.我们正在对一些用户进行测试,看看它是否能减缓一些用户被诱骗向浏览器控制台粘贴(恶意)JavaScript代码的攻击.

需要明确的是:试图在客户端阻止黑客通常是bad idea分;

如果您最终进入了测试组,并且对此感到恼火,请道歉.

实际代码与@joeldixon66's link非常相似;我们的有点复杂,没什么好理由.

Chrome将所有控制台代码封装在

with ((console && console._commandLineAPI) || {}) {
  <code goes here>
}

... 因此,该网站重新定义了console._commandLineAPI扔:

Object.defineProperty(console, '_commandLineAPI',
   { get : function() { throw 'Nooo!' } })

这是not quite enough (try it!),但这是最重要的


结语:Chrome团队认为,从用户端JS击败控制台是一个错误和fixed the issue,这使得这种技术无效.之后,protect users from self-xss增加了额外的保护.

Javascript相关问答推荐

我如何在这个动画 blob 中移动与“blob”的“交互”?

React 18,useEffect 被调用了两次

如何在准确的时间运行谷歌应用脚​​本?

在javascript中转义双引号

如何将下拉菜单与按钮对齐

使用数组字符串查找性能可行性

使用我的像素艺术程序时出现奇怪的视觉错误

如何根据另一个输入的值进行输入?

如何让 Javascript 跟踪我的分数增量?

删除芥末 CDN 存储桶 204 错误未删除

具有 6 个键的对象数组,如何将它们分组为更少的键?

从具有相同 id 的元素列表中动态获取特定元素的值

有没有办法在Javascript中将只有hh:mm的字符串转换为日期

如何从 Firebase 版本 7 中删除数据?

调试时如何配置VS Code运行npx vite dev

在两个不同的网页之间共享 HTML 表单数据

如何在 React Native 上的 Firebase 中获取特定文档的文档 ID?

document.getElementById().value - 覆盖或知道何时访问

在服务器运行时运行命令?

悬停时未出现元素