管理杂谈OA答疑ERP答疑教程搜索

【Web开发】浏览器不要再用localStorage了,这6种存储方案既安全又高效


localStorage 是浏览器中 window 对象的一个只读属性,主要用于存储键值对,localStorage提供了一种简单的API来存储键值对数据,主要包括setItem、getItem、removeItem和clear等方法。它适用于存储少量需要跨会话持久化的数据,存储上限一般在4MB到10MB之间,具体数值因浏览器而异(例如Chrome、Firefox和Safari等)‌。localStorage的数据在浏览器关闭后仍然保留,适合长期存储数据,如用户的偏好设置和表单数据等‌。

随着web应用复杂度的增加,安全要求的加强,性能等多方面的需求,localStorage 的局限性也愈发明显。本文将分享6种 存储方案  以满足不同开发场景!

localStorage存在的隐患与局限


1.安全问题:


2.功能限制

3.应用场景局限

更安全、高效的6种替代方案

1. IndexedDB 


IndexedDB‌是一种在浏览器中用于存储大量结构化数据的底层API,属于NoSQL数据库。它允许开发者在用户的浏览器中存储数据,而无需依赖外部服务器。IndexedDB使用键值对的方式存储数据,并通过索引实现对数据的高性能搜索‌


安全建议

仍需避免存储敏感信息,必要时加密数据。

2. HTTP-only Cookies(服务端标记)

HTTP-only Cookie‌是一种特殊的Cookie,其主要安全特性在于它只能被服务器读取和修改,而不能被浏览器中的其他程序(如JavaScript)读取或修改。这种特性使得HTTP-only Cookie能够有效地防止跨站脚本攻击(XSS)和其他恶意脚本的攻击,保护用户的个人信息和会话信息‌


特点

适用场景

缺点


3. 服务端存储(数据库 + 缓存)


服务端存储‌是指在服务器上用于存储和管理数据的资源,主要包括数据库和缓存。服务端存储的主要作用是确保数据的持久存储和高效访问。



4.现代浏览器 API



5. 状态管理库(如 Redux、Vuex)


6. 加密存储方案




如何选择存储方案?

场景推荐方案
敏感信息(如 Token)
HTTP-only Cookie + 服务端存储
大量结构化数据
IndexedDB
静态资源缓存
Cache API + Service Worker
临时状态管理
内存存储(Redux/Vuex)
需要高安全性的离线数据
IndexedDB + 客户端加密

总结

实际开发中,通常会结合多种方案(如 Cookie 存 Token + IndexedDB 存离线数据 + 内存状态管理),同时通过代码混淆、CSP 策略、输入过滤等手段进一步防御 XSS 攻击。

阅读原文:原文链接


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn