【前端学习】前端存储--Cookie、localStorage和sessionStorage

cookie、localStorage和sessionStorage是web开发中客户端存储的三种常用技术。现对三者的特点进行比较如下:

1.存储大小
  • cookie: 每条cookie数据大小一般不超过4kB,浏览器对每个域名下的cookie总数量限制在20个左右;
  • localStorage和sessionStorage:存储数据量较大,一般能存储5M甚至更高
存储周期
  • localStorage 能够永久存储直到用户主动清除;
  • sessionStorage在当前页面关闭或者浏览器关闭后删除,当前页面永久存储;
  • 每个cookie会有有效时间,在过期之前一直有效,过期后浏览器会自动清除;
2.服务器交互
  • cookie会在每次发送请求时,跟随报文携带到相应的域名,服务器端可以写cookie发送给客户端;
  • localStorage内的数据要想实现通信,需要手动将存储在 LocalStorage 中的数据(例如:JWT(JSON Web Token) 或其他凭证读取出来,并附加到请求的 Authorization 头中发送给服务器) 发送给服务器
3.应用场景
  • 标记用户和跟踪用户行为时,推荐使用cookie.例如用户访问页面的次数
  • localStorage适合存储需长期保存在本地且不需要频繁更新的数据,例如页面静态资源
4.安全性
cookie:
复制代码
每次发送请求都需要携带cookie,其信息容易被窃取. 可以通过设置cookie属性来预防一定的安全威胁。
  • secure:表明cookie只能通过https协议传输
  • HttpOnly:表明cookie不能通过JavaScript访问,可防止跨站脚本攻击
  • SameSite : 用于控制浏览器在跨站请求时是否发送该 Cookie。该属性主要有三个值:Strict、Lax 和 None。设置为非None时可以防止跨站请求伪造攻击(CSRF);
    即使将 SameSite 属性设置为 None,依然可以通过 CSRF Token 来防止 CSRF 攻击。

CSRF Token 是由服务器生成的唯一标识符,在请求时必须包含,并且服务器会验证这个 Token

是否有效。由于攻击者无法轻易获取或伪造合法的 CSRF Token,即使跨站请求中携带了 Cookie,也不会成功进行攻击。

localStorage

localStorage 的最大安全问题是 容易受到 XSS 攻击。如果攻击者成功地在页面中注入恶意 JavaScript 代码,这段代码可以轻松读取和操纵存储在 localStorage 中的数据。因此,如果站点存在 XSS 漏洞,攻击者可以借此窃取用户信息,甚至伪造请求。

相关推荐
wixzjsh8 分钟前
51单片机学习笔记|最小系统、中断、定时器+数码管动态扫描实现0~9999计数器
笔记·学习·51单片机
PHP实战开发录13 分钟前
PHP接口超时后为什么任务还在跑
开发语言·前端·php·开发
平头哥AI18 分钟前
Day 21 _ error 是个普通值_errors.New 与 fmt.Errorf 造出来,沿调用栈抛到 main 接住
后端·学习·golang·go
今天AI了吗23 分钟前
2026年三大AI桌面智能体横评:Codex vs Hermes vs WorkBuddy
大数据·前端·css·人工智能·架构
kill52237 分钟前
interface vs type:到底该用哪个
前端
ECT-OS-JiuHuaShan39 分钟前
哲学是迭代学,数学是拓扑学
开发语言·人工智能·学习·算法·机器学习·php·拓扑学
leo_messi9439 分钟前
Mysql学习(十二) -- SQL执行到底做了什么事?
sql·学习·mysql
敲代码的嘎仔1 小时前
从零实现视频续播 + 学习进度统计:前端心跳、条件更新、GROUP BY 统计全链路拆解
java·前端·数据库·学习·面试·职场和发展·音视频
做萤石二次开发的哈哈1 小时前
海康移动交通四款设备技能接入实战:布控球+取证终端+测速仪+出入口终端,Web/App/小程序移动交通应用快速生成
前端·物联网·萤石开放平台·蓝海aiot一站式工作台·aiot开发·移动交通
IT_陈寒1 小时前
我TM竟然被Java的空指针坑了第三次!
前端·人工智能·后端