Rust in Everything
基于 topcoat-router 0.10.0

安全默认值

topcoat 的默认值偏严:不配置任何东西,跨站的 POST 就是 403,session cookie 就带着 __Host-、Secure、HttpOnly。这一部分只有一章:

  1. 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"]

💬 关联讨论

发起讨论
加载中...