了解Google 的JSON 回應中的前置程式碼
Google 經常加入前言「while(1);」到其私有JSON 回應🎜>Google 經常加入前言「while(1);」到其私有JSON 回應的開始。這種做法引發了對其目的的質疑。
防止 JSON 劫持
此前置程式碼的主要原因是阻止 JSON 劫持。 JSON 劫持是一個安全漏洞,允許攻擊者透過使用外部腳本在 JSON 回應中包含惡意腳本來存取敏感資料。透過在前面加上“while(1);”,Google 會阻止腳本自動執行,因為程式碼會進入無限迴圈。
技術細節
執行 JSON 劫持透過利用瀏覽器允許網站動態改變「Array」和「Function」全域物件方法的行為。因此,攻擊者可以設定物件的特定回應屬性並執行任意程式碼。
替代語法
除了「while(1);」之外,Google 還採用了變體在不同的服務中:
這些變體具有防止JSON 劫持和促進安全JSON 解析的相同目的。
瀏覽器相容性自2011 年以來,所有主要瀏覽器都已透過ECMAScript 5 的同源策略解決了JSON 劫持問題,該策略限制來自不同來源的腳本存取資料。但是,前置程式碼提供了額外的保護層,防止舊版瀏覽器或不合規網站中的潛在漏洞。以上是為什麼 Google 在其 JSON 回應中加入「while(1);」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!