浏览器原理面试知识点

浏览器原理面试知识点

前端缓存&本地存储

五步吃透前端缓存,让页面飞起

Session,Cookie,Token

看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了

主要用于的目的:

  • 会话管理,登录,购物车等服务器应该记住的其他内容
  • 个性化,用户偏好,主题等
  • 追踪,记录分析用户行为

Cookie 曾经用于一般的客户端存储。虽然这是合法的,因为它们是在客户端上存储数据的唯一方法,但如今建议使用现代存储 API。Cookie 随每个请求一起发送,因此它们可能会降低性能(尤其是对于移动数据连接而言)。

常见字段:

  1. Name:Cookie 的名称。
  2. Value:Cookie 的值。 值:Cookie
  3. Domain:Cookie 有效的域名。 域名:Cookie
  4. Path:Cookie 有效的目录路径。
  5. Expires/Max-Age:Cookie 的过期时间或存活时间。 有效期/最大值
  6. Secure:指示浏览器仅在通过 HTTPS 协议访问时才发送 Cookie。
  7. HttpOnly:指示浏览器禁止通过 JavaScript 访问 Cookie,以提高安全性。
  8. SameSite:指示浏览器仅在同一站点请求时发送 Cookie,以提高安全性。

SameSite->CSRF 攻击

已登录用户 访问 攻击者网站,攻击网站向被攻击网站发起恶意请求(利用浏览器会自动携带 cookie)。

原理

  1. 用户登录 A 网站
  2. A 网站确认身份,B 网站得到 cookie
  3. B 网站用 cookie 向 A 网站发请求

防御

  1. Get 请求不对数据进行修改

  2. 不让第三方网站访问到用户 Cookie

  3. 阻止第三方网站请求接口

  4. 请求时附带验证信息,比如验证码或者 Token

  5. SameSite

    • 可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。 设置只有同一站点的请求才能携带 cookie
  6. Token 验证

    • cookie 是发送时自动带上的,而不会主动带上 Token,所以在每次发送时主动发送 Token
  7. Referer 验证

    • 对于需要防范 CSRF 的请求,我们可以通过验证 Referer 来判断该请求是否为第三方网站发起的。
  8. 隐藏令牌

    • 主动在 HTTP 头部中添加令牌信息
  9. 禁止第三方网站带 cookies

XSS 攻击

XSS 说起来也简单,就是让网页 html 出现 script 标签,从而执行内部的代码,获取一些用户信息,包括 cookie、storage 等,然后通过这些信息以被攻击的用户身份去进行一些操作。

攻击者脚本 嵌入 被攻击网站,获取用户 cookie 等隐私信息。