Skip to content

认证与存储:Cookie、Token、SessionStorage、LocalStorage 的安全边界

主题边界

  • 前端常见会话载体包括 Cookie、内存态、sessionStorage、localStorage 和某些原生容器提供的安全存储。
  • 讨论安全边界时要区分可读性、自动附带行为、过期控制和跨标签页共享。

机制与流程

  • Cookie 可设置 HttpOnlySecureSameSite 并由浏览器在符合域、路径和同站策略时自动附带。
  • localStorage / sessionStorage 可被同源脚本直接读写,不会自动附带到请求;sessionStorage 仅限单标签页生命周期。
  • Token 是认证凭证格式或承载,不等于存储介质;Session 是服务端会话模型,也不等于只能用 Cookie。

关键差异

  • Cookie 方案易受 CSRF 影响但可通过 HttpOnly 避免被 JS 直接读取;本地存储方案不自动携带,但一旦发生 XSS,凭证暴露面更直接。
  • JWT 与 opaque token 的差异主要在服务端验证与信息承载,不决定前端必须怎么存。

边界条件

  • “Token 存 localStorage 更安全”或“Cookie 一定不安全”都是过度简化。
  • 刷新令牌、短时访问令牌、设备绑定和旋转策略往往比单一存储位置更影响总体风险。

工程落点

  • 认证方案要和后端会话模型、跨域架构、移动端支持和登出失效策略一起设计。
  • 前端最重要的是缩小 XSS 面、正确设置 Cookie 属性、避免日志与错误上报泄漏凭证。

相关主题