Cookie
Session
jwt(json web token)
面试题
cookie、sessionStorage、localStorage 的区别
参考答案:
- cookie、sessionStorage、localStorage 都是保存本地数据的方式,其中 cookie 兼容性较好,所有浏览器均支持;
- 浏览器针对 cookie 会有一些默认行为:
- 比如当响应头中出现 set-cookie 字段时,浏览器会自动保存 cookie 的值;
- 再比如,浏览器发送请求时,会附带匹配的 cookie 到请求头中;
- 这些默认行为,使得 cookie 长期以来担任着维持登录状态的责任;
- 与此同时,也正是因为浏览器的默认行为,给了恶意攻击者可乘之机,CSRF 攻击就是一个典型的利用 cookie 的攻击方式;虽然 cookie 不断的改进,但前端仍然需要另一种更加安全的保存数据的方式;
- HTML5 新增了 sessionStorage 和 localStorage ,前者用于保存 会话级别 的数据,后者用于 更持久 的保存数据;浏览器针对它们没有任何默认行为,这样一来,就把保存数据、读取数据的工作交给了前端开发者,这就让恶意攻击者难以针对登录状态进行攻击;
- cookie 的大小是有限制的,一般浏览器会限制同一个域下的 cookie 总量为 4M ,而 sessionStorage 和 localStorage 则没有限制;
- cookie 会与 domain、path 关联,而 sessionStorage 和 localStorage 只与 domain 关联;
Cookie 如何防范 XSS 攻击
XSS(跨站脚本攻击)是指攻击者在返回的 HTML 中嵌入 javascript 脚本,为了减轻这些攻击,需要在 HTTP 头部配上 set-cookie:
- httponly 这个属性可以防止 XSS ,它会禁止 javascript 脚本来访问 cookie;
- secure 这个属性告诉浏览器仅在请求为 https 的时候发送 cookie;
一句话概括 restful
就是用 URL 定位资源,用 HTTP 描述操作;
第 5️⃣ 座大山:本地存储
上一篇