Sec-Fetch-Dest 头
Baseline 广泛可用 *
HTTP Sec-Fetch-Dest
Fetch 元数据请求头指示请求的“目的地”。即原始 fetch 请求的发起者,也就是所获取数据将被使用的地方(以及方式)。
这允许服务器根据请求的预期用途是否合适来决定是否响应请求。例如,目标为 audio
的请求应该请求音频数据,而不是其他类型的资源(例如,包含敏感用户信息的文档)。
头类型 | Fetch 元数据请求头 |
---|---|
禁止请求头 | 是 (Sec- 前缀) |
CORS 安全列表请求头 | 否 |
语法
Sec-Fetch-Dest: audio
Sec-Fetch-Dest: audioworklet
Sec-Fetch-Dest: document
Sec-Fetch-Dest: embed
Sec-Fetch-Dest: empty
Sec-Fetch-Dest: fencedframe
Sec-Fetch-Dest: font
Sec-Fetch-Dest: frame
Sec-Fetch-Dest: iframe
Sec-Fetch-Dest: image
Sec-Fetch-Dest: manifest
Sec-Fetch-Dest: object
Sec-Fetch-Dest: paintworklet
Sec-Fetch-Dest: report
Sec-Fetch-Dest: script
Sec-Fetch-Dest: serviceworker
Sec-Fetch-Dest: sharedworker
Sec-Fetch-Dest: style
Sec-Fetch-Dest: track
Sec-Fetch-Dest: video
Sec-Fetch-Dest: webidentity
Sec-Fetch-Dest: worker
Sec-Fetch-Dest: xslt
如果此头包含任何其他值,服务器应忽略此头。
指令
注意:这些指令对应于 Request.destination
返回的值。
audio
-
目标是音频数据。这可能源自 HTML
<audio>
标签。 audioworklet
-
目标是为 audio worklet 使用而获取的数据。这可能源自对
audioWorklet.addModule()
的调用。 document
-
目标是文档(HTML 或 XML),并且该请求是用户发起的顶级导航的结果(例如,用户点击链接导致的结果)。
嵌入
-
目标是嵌入内容。这可能源自 HTML
<embed>
标签。 empty
-
目标是空字符串。这用于没有自己值的目标。例如:
fetch()
、navigator.sendBeacon()
、EventSource
、XMLHttpRequest
、WebSocket
等。 fencedframe
实验性-
目标是围栏帧。
font
-
目标是字体。这可能源自 CSS
@font-face
。 frame
-
目标是帧。这可能源自 HTML
<frame>
标签。 iframe
-
目标是 iframe。这可能源自 HTML
<iframe>
标签。 图片
-
目标是图像。这可能源自 HTML
<img>
、SVG<image>
、CSSbackground-image
、CSScursor
、CSSlist-style-image
等。 manifest
-
目标是清单。这可能源自 HTML <link rel=manifest>。
object
-
目标是对象。这可能源自 HTML
<object>
标签。 paintworklet
-
目标是 paint worklet。这可能源自对
CSS.PaintWorklet.addModule()
的调用。 report
-
目标是报告(例如,内容安全策略报告)。
script
-
目标是脚本。这可能源自 HTML
<script>
标签或对WorkerGlobalScope.importScripts()
的调用。 serviceworker
-
目标是 service worker。这可能源自对
navigator.serviceWorker.register()
的调用。 -
目标是 shared worker。这可能源自
SharedWorker
。 style
-
目标是样式。这可能源自 HTML <link rel=stylesheet> 或 CSS
@import
。 track
-
目标是 HTML 文本轨道。这可能源自 HTML
<track>
标签。 video
-
目标是视频数据。这可能源自 HTML
<video>
标签。 webidentity
-
目标是与验证用户身份相关的端点。例如,它在 FedCM API 中用于验证身份提供商 (IdP) 端点的真实性,防止 CSRF 攻击。
worker
-
目标是
Worker
。 xslt
-
目标是 XSLT 转换。
示例
使用 Sec-Fetch-Dest
由 <img>
元素生成的跨站请求将导致具有以下 HTTP 请求头的请求(注意目的地是 image
)
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
规范
规范 |
---|
Fetch 元数据请求头 # sec-fetch-dest-header |
浏览器兼容性
加载中…
另见
Sec-Fetch-Mode
、Sec-Fetch-Site
、Sec-Fetch-User
fetch 元数据请求头- 使用 Fetch 元数据保护你的资源免受网络攻击 (web.dev)
- Fetch 元数据请求头操场 (secmetadata.appspot.com)