显然,由于最近的诈骗,开发人员工具被人们利用来发布垃圾邮件,甚至用于“破解”帐户。 Facebook 屏蔽了开发者工具,我什至无法使用控制台。
他们是怎么做到的? One Stack Overflow post claimed that it is not possible ,但 Facebook 已经证明他们错了。
只需前往 Facebook 并打开开发者工具,在控制台中输入一个字符,就会弹出此警告。无论你输入什么,它都不会被执行。
这怎么可能?
他们甚至阻止了控制台中的自动完成:
最佳答案
我是 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/