Page 235 - Web性能权威指南
P. 235

14.2 网络安全与沙箱


               将个别套接字的管理任务委托给浏览器还有另一个重要的用意:可以让浏览器运用
               沙箱机制,对不受信任的应用代码采取一致的安全与策略限制。比如,浏览器不
               允许直接访问原始网络套接字 API,因为这样给恶意应用向任意主机发起任意请求
              (端口扫描、连接邮件服务器或发送未知消息)提供可乘之机。

               •   连接限制
                 浏览器管理所有打开的套接字池并强制施加连接数限制,保护客户端和服务器的
                 资源不会被耗尽。
               •   请求格式化与响应处理
                 浏览器格式化所有外发请求以保证格式一致和符合协议的语义,从而保护服务
                 器。类似地,响应解码也会自动完成,以保护用户。

               •   TLS协商
                 浏览器执行 TLS 握手和必要的证书检查。任何证书有问题(比如服务器正在使用
                 自已签发的证书),用户都会收到通知。

               •   同源策略
                 浏览器会限制应用只能向哪个来源发送请求。

               以 上 列 出 的 安 全 限 制 机 制 只 是 一 部 分, 但 已 经 可 以 体 现“ 最 低 特 权 ”(least
               privilege)原则了。浏览器只向应用代码公开那些必要的 API 和资源:应用提供数
               据和 URL,浏览器执行请求并负责管理每个连接的整个生命周期。


                          有必要提一句,并没有单独一条原则叫“同源策略”。实际上,这是一组相
                          关的机制,涉及对 DOM 访问、cookie 和会话状态管理、网络及其他浏览
                          器组件的限制。
                          要全面解析浏览器安全,可能需要另外一本书。如果你真想了解这方面
                          信息,可以看看 Michal Zalewski 的 The Tangled Web: A Guide to Securing
                                              1
                          Modern Web Applications 。

               14.3 资源与客户端状态缓存


               最好最快的请求是没有请求。在分派请求之前,浏览器会自动检查其资源缓存,执
               行必要的验证,然后在满足限制条件的情况下返回资源的本地副本。类似地,如果

               注 1:  中文版《Web 之困:现代 Web 应用安全指南》由机械工业出版社出版。——译者注


               222   |   第 14 章
   230   231   232   233   234   235   236   237   238   239   240