http.frm.sechdr
安全响应头基线中间件(P6-B;HSTS/nosniff/CSP/XFO/Referrer-Policy)
语义登记(v1 口径):
基线五头(sec_apply 组装,插于响应头块尾 —— 首个 CRLFCRLF 前, cors_apply
同式):
Strict-Transport-Security: max-age=
注入面(响应构造纪律):五头值恒出自配置常量/本模块字面量(csp = 部署侧 常量,构造期 sechdr_cfg 校验每字节 printable ASCII(32..126,CR/LF/控制 字节/非 ASCII 即拒)—— 请求字节永不入头。hage = I64 数值经十进制自拼 (cors.cs_num 同式),无注入面。
装配口径:sec_apply 恒在响应生命周期【单点】调用(组合层装配点唯一); 重复调用即头重复(v1 不去重,如实登记 —— 组合层纪律,不去重防护)。 适用域 = 全响应(200/404/…一视同仁;30x Location 与 CSP 交互面登记 志向)。
use 面:零 use 纯模块(middleware/router/cors 不引 —— 严格树 E5020:多 中间件同入口组合时各中间件必为无共享叶子;响应助数字位面自拼不导, cors.ct 同款防菱形)。
pub struct
struct SecCfg
| Field | Type |
|---|---|
ok |
I64 |
err |
I64 |
hage |
I64 |
csp |
Str |
pub fn
| Signature | Returns | Description |
|---|---|---|
sec_err_ok() |
I64 |
err 码:0 ok / 1 csp 形坏(非 printable ASCII)/ 2 hsts age 负 |
sec_err_csp() |
I64 |
— |
sec_err_age() |
I64 |
— |
scfg_ok(c: SecCfg) |
I64 |
— |
scfg_err(c: SecCfg) |
I64 |
— |
scfg_hage(c: SecCfg) |
I64 |
— |
scfg_csp(c: SecCfg) |
Str |
— |
sechdr_csp_default() |
Str |
默认 CSP(部署常量字面量;'self' 单引号为 CSP 语法面,非 Ctron 词法域) |
sechdr_cfg(hage: I64, csp: Str) |
SecCfg |
构造:hage 秒(0 = HSTS 关;负 = err 2),csp 策略(空 = 不发 CSP; 非空须全 printable,否则 err 1)。err 路径 csp 置空(不发面)。 |
sechdr_apply(resp: Str, c: SecCfg) |
Str |
安全头基线施加:resp = 任意 frm_resp 形(状态行 + 头块 + CRLFCRLF + 体); 头块无 CRLFCRLF(形坏)则原样返回(不动 —— 组合层 resp 恒出自 frm_resp, 本臂为防御面)。五头序:HSTS → nosniff → CSP → XFO → Referrer-Policy (发序稳定 = 快照语料可钉)。 |