Skip to content

http.frm.sechdr

安全响应头基线中间件(P6-B;HSTS/nosniff/CSP/XFO/Referrer-Policy)

语义登记(v1 口径): 基线五头(sec_apply 组装,插于响应头块尾 —— 首个 CRLFCRLF 前, cors_apply 同式): Strict-Transport-Security: max-age= —— hage > 0 时发(hage = 0 视为 HSTS 关,不发; 负值构造期拒) X-Content-Type-Options: nosniff —— 恒发 Content-Security-Policy: —— csp 非空时发;默认策略 default-src 'self'(sechdr_csp_default) X-Frame-Options: DENY —— 恒发(CSP frame-ancestors 细粒度面登记志向) Referrer-Policy: no-referrer —— 恒发

注入面(响应构造纪律):五头值恒出自配置常量/本模块字面量(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
(发序稳定 = 快照语料可钉)。