小心了,即將推出的Chrome、Firefox100可能存在嚴重風險
據BleepingComputer消息,Mozilla向網站開發人員發出警告,即將推出的 Firefox 100和 Chrome 100版本瀏覽器存在嚴重風險,在解析包含三位數版本號的用戶代理字符串時可能會破壞網站。
當你瀏覽一個網頁時,你的瀏覽器會向你所訪問的網站的服務器發送用戶代理字符串。該字符串會表明你使用的是哪種瀏覽器,它的版本號,還有你的系統的細節,比如是什么操作系統及它的版本。這樣瀏覽器就會利用這些信息提供符合你的瀏覽器的特定內容。
例如,Mozilla Firefox97版本的當前用戶代理字符串是:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
當前版本的 Google Chrome 98,用戶代理字符串是:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36
Mozilla發現100版本的用戶代理字符串存在風險
2021年8月,Mozilla啟動了一項實驗,以查看三位數的“Firefox/100”用戶代理字符串是否會導致網站出現問題。隨即,谷歌很快跟進了他們自己的 Chrome 100版本的實驗。
在這兩個實驗中,Mozilla 和 Google 發現少數網站在解析包含三位數版本號的用戶代理字符串時無法正常運行。
從那時起,Mozilla就一直在跟蹤由100版本所引起的網絡錯誤,并在HBO Go、Bethesda、 Yahoo、Slack和Duda 網站構建器創建的網站上發現了問題。在大多數情況下,這些問題的范圍從網站聲明不支持瀏覽器到影響網站部分的用戶界面問題。
Mozilla在更改用戶代理字符串的文章中解釋道,如果沒有遵循單一規范,不同的瀏覽器對User-Agent字符串和特定于站點的User-Agent解析有不同的格式。某些解析庫可能有硬編碼的假設或沒有考慮到的錯誤三位數的主要版本號。
而當瀏覽器遷移到兩位數版本號時,許多庫改進了解析邏輯,因此預計達到三位數是出現的問題將大大減少。
接下來,Mozilla 和 Google 將繼續為100版的用戶代理進行相關的實驗,直到 Chrome 瀏覽器和Firefox瀏覽器正式發布。倘若在100版本發布之前尚未完成問題修復工作,屆時Mozilla或Google將準備其他的計劃,確保網站不受影響。
針對Firefox,Mozilla有一個站點干預機制來凍結 Firefox/99 的用戶代理或注入CSS 或其他覆蓋來修復錯誤。
同樣,Chrome 計劃將用戶代理字符串中顯示的版本凍結為99,并在用戶代理字符串的另一部分報告實際版本。
至于網站開發人員和管理員,Mozilla 要求他們測試更改為Firefox 100和Chrome 100的用戶代理,查看是否會破壞他們的網站。
參考來源:https://www.bleepingcomputer.com/news/software/mozilla-warns-chrome-firefox-100-user-agents-may-break-sites/