cookie笔记
保障 Cookie 安全的三种配置:
- HttpOnly: js api 无法访问到带有 HttpOnly 属性的 Cookie,避免 XSS 攻击
- Secure: 请求非 https 不会携带有 Secure 属性的 Cookie,避免中间人攻击
- SameSite: 控制 Cookie 发送的场景,避免 CSRF 攻击,包含 Strict、Lax、None 三种值,Chrome 80 后默认值为 Lax。
- Strict: 仅允许同站请求 (opens new window)发送 Cookie
- Lax: 允许同站请求和部分跨站请求(a 链接的点击跳转,预加载请求,GET 表单)发送 Cookie
- None: 设置 Secure 的情况下,无论是否跨站都会发送;否则视为 Lax 策略
# SameSite 常用配置
- 公开图片:SameSite=None,允许第三方域名 CDN
- 隐私图片:SameSite=Lax/Strict,使用同站域名 CDN
- ...
隐私图片配置 Lax ,第三方网站无法通过 <img> 、fetch
等请求获取。
虽然可以使用 Get form 表单请求携带 Cookie,但是提交表单跳转的其他页面,第三方站点无法获取到数据,影响不大
<form method="GET" action="https://p0-image-private.ixigua.com/tos-cn-i-0004/xx~noop.webp">
<input type="hidden" name="policy" value="teyJ2bSI6MywidWlkIjoiODUxNjYyOTY0MTIifQ==">
<input type="hidden" name="x-orig-authkey" value="f32326d3454f2ac7e96d3d06cdbb035152127018">
<input type="hidden" name="x-orig-expires" value="2008687430">
<input type="hidden" name="x-orig-sign" value="kigjEv7vGLMrzBWY8WXMV4sp/Hro=">
</form>
1
2
3
4
5
6
2
3
4
5
6
# 参考
编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56