← 返回文章列表

Cookie 与 Session 的区别与配合

安全HTTP入门

各管什么

Cookie 是浏览器存的一小段键值,每次请求自动带上是身份凭证的载体。Session 是服务端保存的用户状态,通常只把一个随机 session id 放进 Cookie,真正的用户数据在服务端。

登录流程

  1. 用户登录,服务端校验密码后创建 session,存 user_id;
  2. 把 session id 写入 Cookie 返回;
  3. 之后每次请求,浏览器带上 Cookie,服务端用 id 查到用户。

JWT 不是 Session

JWT 把状态编码进令牌本身(自带签名),服务端可不查库。它适合无状态服务,但吊销难,令牌在有效期内一直有效,无法像 session 那样随手删除。

Cookie 安全标记

  • HttpOnly:禁止 JS 读取,防 XSS 偷令牌;
  • Secure:只走 HTTPS;
  • SameSite:限制跨站携带,缓解 CSRF。

动手试试

生成强会话密钥:密码生成器。