概述许多跨站攻击(CSRF、XSSI、XS-Leaks、定时侧信道)依赖从攻击者控制的文档向受害站点发起请求。Fetch Metadata 提供请求上下文(来源关系、模式与目标),便于服务端拒绝非预期上下文的访问,形成“资源隔离策略”。关键头`Sec-Fetch-Site`:表明请求发起方与目标的关系(`same-origin`、`same-site`、`cross-site`);可据此拒绝跨站访问非导航型端点[参考5,3]。`Sec-Fetch-Mode`:请求模式(`cors`、`no-cors`、`same-origin`);辅助判定是否为跨源资源加载[参考4,2]。`Sec-Fetch-Dest`:目标类型(`document`、`image`、`script` 等);防止被不当嵌入(如脚本/iframe)[参考2,4]。工程建议为所有端点实施资源隔离:允许来自本应用与直接导航的请求,拒绝 `cross-site` 非导航请求;对缺失头的旧 UA 回退到 Origin/Referer 或 CSRF Token 校验[参考1,3]。结合 `Cross-Origin-Resource-Policy (CORP)` 与 `SameSite` Cookie、CSRF Token,实现多层防护。参考与验证[参考1]OWASP 讨论:在 CSRF 防护中纳入 Fetch Metadata 作为防御补强建议:https://github.com/OWASP/CheatSheetSeries/issues/1803[参考2]文章:Sec-Fetch-* 的实现与中间件示例(CSRF/XSSI 防护):https://www.cyberchief.ai/2025/05/sec-fetch-site-security-headers.html[参考3]web.dev:Fetch Metadata 与资源隔离策略的指导与示例:https://web.dev/articles/fetch-metadata[参考4]用例:`Sec-Fetch-Mode/Dest` 行为与安全意义说明:https://modheader.com/usecases/headers/sec-fetch-mode[参考5]W3C 提案:Fetch Metadata 草案与安全目标说明:https://github.com/w3c/webappsec-fetch-metadata关键词校验关键词与 Fetch Metadata 头与防护策略一致。

发表评论 取消回复