---
title: "Fetch Metadata 防护:Sec-Fetch 系列头的资源隔离策略"
keywords:
- Sec-Fetch-Site
- Sec-Fetch-Mode
- Sec-Fetch-Dest
- 资源隔离
- CSRF
- XSSI
description: "总结 Fetch Metadata(Sec-Fetch-*)请求头的意义与用法,给出在服务端实施资源隔离策略的工程建议,作为 CSRF/XSSI 的防御补强。"
categories:
- 文章资讯
- 编程技术
---
概述
许多跨站攻击(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)与SameSiteCookie、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 头与防护策略一致。

发表评论 取消回复