安全默认值
topcoat 的默认值偏严:不配置任何东西,跨站的 POST 就是 403,session cookie 就带着 __Host-、Secure、HttpOnly。这一部分只有一章:
- Origin 检查、cookie 与 session:
OriginPolicy::check的判定顺序和 17 种请求头组合的实测结果(same-site也被拒、后备比较只看主机部分、它不保护改状态的GET);CookieLayer什么时候写Set-Cookie、出错时怎么写、流式之后写 cookie 的 panic 原文和被截断的响应;签名与加密 cookie 的实际样子,Key::generate()重启即失效;session 的 token、哈希、start/refresh/rotate/stop的响应头,以及 Chrome 在http://127.0.0.1下能否保存__Host-cookie。
flowchart TB req["请求"] --> origin["OriginLayer:所有 layer 之外"] origin --> cookie["CookieLayer:jar 放进上下文"] cookie --> session["SessionLayer:读 token"] session --> handler["handler:start、rotate、cookies(cx).add"] handler -->|"next.run 返回"| setc["写 Set-Cookie,seal"] setc --> stream["流式部分:只能读 cookie"]
💬 关联讨论
发起讨论加载中...