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