我是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增加了额外的保护.