javascript - Facebook 如何禁用浏览器的集成开发人员工具?

标签 javascript facebook google-chrome-devtools

显然,由于最近的诈骗,开发人员工具被人们利用来发布垃圾邮件,甚至用于“破解”帐户。 Facebook 屏蔽了开发者工具,我什至无法使用控制台。

Enter image description here

他们是怎么做到的? One Stack Overflow post claimed that it is not possible ,但 Facebook 已经证明他们错了。

只需前往 Facebook 并打开开发者工具,在控制台中输入一个字符,就会弹出此警告。无论你输入什么,它都不会被执行。

这怎么可能?

他们甚至阻止了控制台中的自动完成:

Enter image description here

最佳答案

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

需要明确的是:试图阻止黑客客户端是 bad idea一般来说; 这是为了防止 specific social engineering attack .

如果您最终加入了测试组并对此感到恼火,那么抱歉。 我试图让旧的选择退出页面(现在 help page )尽可能简单,同时仍然足够可怕以阻止至少一些受害者。

实际代码与 @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 - Facebook 如何禁用浏览器的集成开发人员工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28766307/

相关文章:

android - Google Chrome for Android 远程网络调试

javascript - JavaScript 控制台中的颜色

javascript - ExtJs HTML 组件点击事件

javascript - React-Leaflet - 自定义 Pin,OnClick 链接到另一个页面

facebook - 寻找 page_stories_by_story_type 和 page_consumptions_by_consumption_type 的类型详细信息

ios - 使用 FBSDKMessenger 打开特定用户的 facebook Messenger

javascript - 对 JavaScript 文件的更改未在 Chrome 上显示

javascript - jQuery - 在父页面的 DIV 中加载表单提交(?)

javascript - setInterval 函数不能使用外部变量

php - 使用 load() 刷新 div 后,Facebook 之类的按钮不显示;