为什么要使用沙箱

234 阅读1分钟

现在chrome浏览器如上,渲染进程放在沙箱中,浏览器主进程、网络进程、GPU进程等都放在浏览器内核中,渲染进程和浏览器内核之间通过IPC进行通信。

原因:

  • 网络进程负责资源的下载,谁也不知道下载的资源是否安全,所以浏览器默认所有的资源都是不安全的,将网络进程放在浏览器内核中,即使下载的资源有问题,它也不能对用户发起攻击。

  • 如果下载的是一个恶意程序,那么当它运行时,才会发起攻击,这个运行的过程放在渲染内核中,即使发起攻击,也不会获取到操作系统的权限。

浏览器内核和渲染内核:

注意:

  • 浏览器内核在处理URL请求之前,会先检查是否跨域等。
  • 当有用户输入时,操作系统没有直接将事件发送给渲染进程,而是先发送给浏览器内核,如果是浏览器地址栏的事件,那么浏览器内核会自己处理,如果是页面的,那么浏览器内核会将该事件转交给渲染进程。
  • iframe相当于一个沙箱,因此将它与外部页面进行隔离,并且分配单独的渲染进程。