前端能对 Cookie 进行加密吗?
我最近在做登录功能,后端返回的 token 存在 Cookie 里,但听说 Cookie 容易被窃取,想自己加密一下。可是前端加密真的有用吗?比如用 CryptoJS.AES.encrypt 加密后再存,会不会反而更不安全?
我试过这样存:
const encrypted = CryptoJS.AES.encrypt(token, 'my-secret-key').toString();
document.cookie = <code>auth=${encrypted}; path=/; secure; samesite=strict</code>;
但感觉密钥写在前端代码里,谁都能看到,等于没加密……是不是应该完全交给后端处理?前端到底能不能/该不该加密 Cookie?
Cookie的安全靠的是
HttpOnly(防XSS)、Secure(HTTPS传输)、SameSite(防CSRF)这些属性,以及后端对敏感数据的加密存储。传输层用HTTPS就足够了,别在前端做无用功。