前端加密后存 localStorage 安全吗?
我最近在做用户敏感信息的本地存储,尝试用 CryptoJS 把数据 AES 加密后再存到 localStorage。但听说 localStorage 本身不安全,就算加密了也可能被 XSS 拿到密钥?
我现在是这样加密的:
const encrypted = CryptoJS.AES.encrypt(data, 'my-secret-key').toString();
localStorage.setItem('user', encrypted);
但感觉密钥写死在前端代码里根本没用啊,是不是换个方式更好?比如结合后端动态下发密钥?
闲人海燕
Lv1
前端加密防不住 XSS,因为密钥和解密逻辑都在浏览器里,攻击者只要把你的代码复制过去就能解密,跟存明文没本质区别。省事的话直接别存 localStorage,把敏感信息放到 HttpOnly、Secure 的 Cookie 里,让后端去设置。JS 读不到这种 Cookie,XSS 拿到也没用,这才是浏览器自带的最稳妥方案。
点赞
1
2026-03-04 09:09