所以很明显,由于最近的诈骗,开发者工具被人们用来发布垃圾邮件,甚至被用来"黑客"账户.Facebook屏蔽了开发者工具,我甚至不能使用控制台.
他们是怎么做到的??但Facebook已经证明他们错了.
只要进入Facebook,打开开发者工具,在控制台中输入一个字符,就会弹出这个警告.不管你投入什么,都不会被执行.
这怎么可能?
他们甚至在控制台中屏蔽了自动完成功能:
所以很明显,由于最近的诈骗,开发者工具被人们用来发布垃圾邮件,甚至被用来"黑客"账户.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增加了额外的保护.