说说浏览器的沙箱机制
黑客會在網頁中插入一段惡意代碼,然后利用瀏覽器漏洞來執行任意代碼,這就叫做 “掛馬”。它是瀏覽器所面對的一種主要的威脅。
瀏覽器為了應對 “掛馬” 威脅,從單進程架構轉變為多進程架構。瀏覽器的多進程架構,會分開瀏覽器的各個功能模塊。這樣當一個瀏覽器進程崩潰時,也不會影響到其他的瀏覽器進程。
Chrome 瀏覽器是第一個采用多進程(Multiprocessing)架構的瀏覽器:這個架構能容許多個程序同時運行而互不影響,每個網頁標簽都是獨立于窗口程序而存在,當資源過高或崩潰時,不會因為一個停頓而整個程序當掉。這樣做,可以極大地提升用戶體驗。
Chrome 瀏覽器包含瀏覽器進程、渲染進程、插件進程以及擴展進程。插件進程,比如 flash、java 等進程會與瀏覽器進程嚴格隔離:
渲染進程被沙箱(Sandbox)隔離,網頁 web 代碼內容必須通過 IPC 通道才能與瀏覽器內核進程通信,通信過程會進行安全的檢查。
沙箱設計的目的是為了讓不可信的代碼運行在一定的環境中,從而限制這些代碼訪問隔離區之外的資源。如果因為某種原因,確實需要訪問隔離區外的資源,那么就必須通過的指定的通道,這些通道會進行嚴格的安全檢查,來判斷請求的合法性。通道會采取默認拒絕的策略,一般采用封裝 API 的方式來實現。
Chrome 中的每一個標簽頁都是一個沙箱(sandbox)。為了防止“惡意軟件破壞用戶系統”或“利用標簽頁影響其他標簽頁”。沙箱遵循最小權限原則,每個動作的權限都會被限制,僅能運算而無法寫入文件和從敏感區域(即受保護區域)讀取文件(如我的文檔、桌面)。例如在其中一個標簽頁運作的惡意軟件,將無法竊取信用卡號碼、干擾鼠標運作,或告訴系統在啟動時運行某個程序,并且惡意軟件會在標簽頁關閉時立即中止。
轉載于:https://juejin.im/post/5c96255651882559b24f395e
總結
以上是生活随笔為你收集整理的说说浏览器的沙箱机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net core系列 47 Id
- 下一篇: oracle sql developer