基础概念
HTTP-only 是一个 Web 应用程序安全特性,用于防止跨站脚本 (XSS) 攻击。当一个 cookie 被标记为 HTTP-only 时,它只能通过 HTTP 协议进行访问和修改,无法通过客户端脚本(如 JavaScript)进行访问。
简单使用
Set-Cookie: CookieName=CookieValue; SameSite=Strict|Lax|None;
SameSite 是一个 Cookie 属性,它指定了 Cookie 在什么情况下可以被发送:
- SameSite=Strict: 这个 Cookie 只会在同源请求中发送,即源 (origin) 完全一致的情况下才会发送。比如从 https://example.com 发起的请求到 https://example.com 才会带上这个 Cookie。
- SameSite=Lax: 这个 Cookie 在同源请求中始终会发送,在跨源的情况下,只有一些"安全"的请求方式(如 GET 请求)才会发送这个 Cookie。这是目前大多数浏览器的默认设置。
- SameSite=None: 这个 Cookie 在任何情况下都会发送,不论是同源还是跨源请求。但是为了确保安全,必须同时设置 Secure 属性,让 Cookie 只能在 HTTPS 连接中发送。