浏览器原理面试知识点
浏览器原理面试知识点
Juns浏览器原理面试知识点
前端缓存&本地存储
Session,Cookie,Token
Cookie
主要用于的目的:
会话管理
,登录,购物车等服务器应该记住的其他内容个性化
,用户偏好,主题等追踪
,记录分析用户行为
Cookie 曾经用于一般的客户端存储。虽然这是合法的,因为它们是在客户端上存储数据的唯一方法,但如今建议使用现代存储 API。Cookie 随每个请求一起发送,因此它们可能会降低性能(尤其是对于移动数据连接而言)。
常见字段:
Name
:Cookie 的名称。Value
:Cookie 的值。 值:CookieDomain
:Cookie 有效的域名。 域名:CookiePath
:Cookie 有效的目录路径。Expires/Max-Age
:Cookie 的过期时间或存活时间。 有效期/最大值Secure
:指示浏览器仅在通过 HTTPS 协议访问时才发送 Cookie。HttpOnly
:指示浏览器禁止通过 JavaScript 访问 Cookie,以提高安全性。SameSite
:指示浏览器仅在同一站点请求时发送 Cookie,以提高安全性。
SameSite->CSRF 攻击
已登录用户
访问 攻击者网站
,攻击网站向被攻击网站发起恶意请求(利用浏览器会自动携带 cookie)。
原理
- 用户登录 A 网站
- A 网站确认身份,B 网站得到 cookie
- B 网站用 cookie 向 A 网站发请求
防御
Get 请求不对数据进行修改
不让第三方网站访问到用户 Cookie
阻止第三方网站请求接口
请求时附带验证信息,比如验证码或者 Token
SameSite
- 可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。 设置只有同一站点的请求才能携带 cookie
Token 验证
- cookie 是发送时自动带上的,而不会主动带上 Token,所以在每次发送时主动发送 Token
Referer 验证
- 对于需要防范 CSRF 的请求,我们可以通过验证 Referer 来判断该请求是否为第三方网站发起的。
隐藏令牌
- 主动在 HTTP 头部中添加令牌信息
禁止第三方网站带 cookies
XSS 攻击
XSS 说起来也简单,就是让网页 html 出现 script 标签,从而执行内部的代码,获取一些用户信息,包括 cookie、storage 等,然后通过这些信息以被攻击的用户身份去进行一些操作。
攻击者脚本
嵌入 被攻击网站
,获取用户 cookie 等隐私信息。