Facebook 的隐秘防御:中和开发者工具
尽管人们相信禁用浏览器的内置开发者工具在技术上是不可能的,但 Facebook 已经违背了这个观念。为了打击猖獗的诈骗和恶意帐户黑客攻击,Facebook 制定了一个大胆的解决方案。
Facebook 如何实现不可能
Facebook 的方法包括通过封装的代码片段拦截所有控制台命令在专门的 Chrome 功能中。通过修改此函数,Facebook 可以有效地使任何控制台输入无效。
技术细节
Chrome 将控制台命令封装在以下结构中:
with ((console && console._commandLineAPI) || {}) { <code goes here> }
Facebook巧妙地重新定义了console._commandLineAPI属性来触发异常:
Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } })
虽然这本身并不能完全阻止控制台,但它构成了防御机制的核心。
安全与功能
虽然客户端黑客措施可能会出现问题,但 Facebook 的策略专门针对社交工程攻击,即用户在不知情的情况下执行恶意 JavaScript 代码console.
尾声
尽管 Facebook 采取了创新方法,Chrome 团队还是将其归类为错误并逆转了该功能。然而,Facebook 实施了额外的保护措施来保护用户免受 self-xss 漏洞的影响。
以上是尽管 Chrome 有限制,Facebook 是如何让开发者控制台保持沉默的?的详细内容。更多信息请关注PHP中文网其他相关文章!