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 程式碼。
尾聲
儘管 Facebook 採取了創新方法,Chrome 團隊仍將其歸類為錯誤並逆轉了該功能。然而,Facebook 實施了額外的保護措施來保護使用者免受 self-xss 漏洞的影響。
以上是儘管 Chrome 有限制,Facebook 是如何讓開發者控制台保持沉默的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!