nodisappear / notes

学习笔记
0 stars 0 forks source link

读书 #5

Open nodisappear opened 1 year ago

nodisappear commented 1 year ago

【浏览器工作原理与实践】

浏览器中的 js 执行机制

v8 工作原理

浏览器中的页面循环系统

nodisappear commented 1 year ago

【透视HTTP协议】

URI的完整形态:协议名(http/https...) + 特定符(://) + 身份信息(user:passwd@,不推荐使用) + 主机号(主机名:端口) + 资源位置(/1/2...) + 查询参数(?q1=1&...) + 片段标识符(#fragment,不会发送给服务器) image

nodisappear commented 1 year ago

// script start; bar start; foo start; promise executor; script end; foo end; bar end; promise then; setTimeout;



- 类型系统:每种语言都定义了类型,以及类型的操作方式和交互方式

- 在 JS 中,V8会通过 ToPrimitive 函数将对象转换为原生的字符串或数字类型:
(1) 调用对象的 valueOf 方法,返回字符串类型值或数字类型值
(2) 调用对象的 toString 方法,返回字符串类型值或数字类型值
(3) 将对象转换为数字类型值
![image](https://user-images.githubusercontent.com/38271366/205014500-dc9fa3a4-72ef-49ce-9c4c-5bdaba76d2e2.png)

- RTT(Round Trip Time,网络延迟):从浏览器发送一个数据包到服务器,再从服务器返回数据包到浏览器的整个往返时间
(1) 建立连接的三次握手需要消耗 1.5 个 RRT
(2) 建立 TLS 连接需要消耗 1~2 个 RRT
(3) 综合来看,传输数据之前,需要花掉 3~4 个 RRT

- TCP 协议僵化:操作系统更新滞后、中间设备(路由器,防火墙,交换机...)更新滞后

- QUIC 协议:基于 UDP 实现一些 TCP 的功能,在同一物理连接上可以有多个独立的逻辑数据流
![image](https://user-images.githubusercontent.com/38271366/205047336-a9bb5c50-8a5a-465f-bde5-3e501f5688a7.png)
nodisappear commented 1 year ago

浏览器安全:

一. Web 页面安全

  1. 同源策略(Same-origin policy):协议、域名和端口都相同的 URL 称为同源 URL,浏览器默认同源之间可以相互访问资源和操作 DOM,在 DOM 层面上,同源策略限制了不同源 JS 脚本对当前 DOM 对象的读写,在数据层面上,同源策略限制了不同源站点读取当前站点的 Cookie 等内容,在网络层面上,同源策略限制了通过 XMLHttpRequest 等方式将当前站点数据发送给不同源站点
  2. XSS(Cross Site Scripting,跨站脚本攻击):黑客往 HTML 文件或 DOM 中注入恶意脚本,在用户浏览页面时利用注入的恶意脚本实施攻击,将用户数据上传到黑客的恶意服务器上,常见的三种攻击模式是 存储型 XSS 攻击、反射型 XSS 攻击、基于 DOM 的 XSS 攻击,为阻止 XSS 攻击,可以:限制输入长度,添加验证码,在服务器对输入脚本进行过滤或转码,充分利用 CSP 策略,服务器在 HTTP 响应头中设置 set-cookie HttpOnly
  1. CSRF(Cross-site request forgery,跨站请求伪造):目标站点存在漏洞,黑客在目标站点引诱用户打开黑客的网站,在黑客的网站中利用用户的登录状态发起跨站请求,常见的攻击模式是 自动发起 Get 请求、自动发起 Post 请求、引诱用户点击链接,为阻止 CSRF 攻击,可以:服务器在 HTTP 响应头中设置 set-cookie SameSite 为 Strict 或 Lax SameSite Cookie,服务器上通过 Origin 和 Referer 验证请求的来源站点,服务器和浏览器之间互相传递 CSRF Token

二. 浏览器网络安全

三. 浏览器系统安全 对称加密算法,如:AES 非对称加密算法,如:RSA