Sec-Fetch-Dest
Sec-Fetch-Dest 获取元数据请求头 指示请求的 *目标*。即原始获取请求的启动器,以及获取的数据将使用的位置(以及方式)。
这使服务器能够根据其*预期*的使用方式来确定是否提供服务请求。例如,具有audio 目标的请求应请求音频数据,而不是其他类型的资源(例如,包含敏感用户信息的文档)。
| 头类型 | 获取元数据请求头 |
|---|---|
| 禁止的头名 | 是(前缀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-
目标是用于音频 worklet 的数据。这可能源自对
audioWorklet.addModule()的调用。 document-
目标是文档(HTML 或 XML),并且该请求是用户发起的顶级导航的结果(例如,由用户点击链接引起)。
embed-
目标是嵌入内容。这可能源自 HTML
<embed>标签。 empty-
目标是空字符串。这用于没有自身值的目的地。例如:
fetch(),navigator.sendBeacon(),EventSource,XMLHttpRequest,WebSocket等。 fencedframeExperimental-
目标是 围栏框架。
font-
目标是字体。这可能源自 CSS
@font-face。 frame-
目标是框架。这可能源自 HTML
<frame>标签。 iframe-
目标是 iframe。这可能源自 HTML
<iframe>标签。 image-
目标是图像。这可能源自 HTML
<img>,SVG<image>,CSSbackground-image,CSScursor,CSSlist-style-image等。 manifest-
目标是清单。这可能源自 HTML <link rel=manifest>。
object-
目标是对象。这可能源自 HTML
<object>标签。 paintworklet-
目标是绘制 worklet。这可能源自对
CSS.PaintWorklet.addModule()的调用。 report-
目标是报告(例如,内容安全策略报告)。
script-
目标是脚本。这可能源自 HTML
<script>标签或对WorkerGlobalScope.importScripts()的调用。 serviceworker-
目标是服务工作者。这可能源自对
navigator.serviceWorker.register()的调用。 -
目标是共享工作者。这可能源自
SharedWorker。 style-
目标是样式。这可能源自 HTML <link rel=stylesheet> 或 CSS
@import。 track-
目标是 HTML 文本轨道。这可能源自 HTML
<track>标签。 video-
目标是视频数据。这可能源自 HTML
<video>标签。 webidentity-
目标是与验证用户身份相关的端点。例如,它在 FedCM API 中用于验证身份提供者 (IdP) 端点的真实性,防止 CSRF 攻击。
worker-
目标是
Worker。 xslt-
目标是 XSLT 变换。
示例
由 <img> 元素生成的跨站点请求会导致具有以下 HTTP 请求头的请求(请注意,目标是image)
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
规范
| 规范 |
|---|
| 获取元数据请求头 # sec-fetch-dest-header |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- 相关头
- 使用获取元数据保护您的资源免受网络攻击 (web.dev)
- 获取元数据请求头游乐场 (secmetadata.appspot.com)