Permissions-Policy
Permissions-Policy
响应标头提供了一种可以在本页面或包含的 iframe 上启用或禁止浏览器特性的机制。
更多的信息,请查看Feature Policy
Header type | Response header |
---|---|
Forbidden header name | yes |
语法
Permissions-Policy: <directive> <allowlist>
<allowlist>
-
一个来源列表,在括号中包含的以下一个或多个值,并用空格分隔:
*
: 允许在当前文档和所有包含的内容(比如 iframes)中使用本特性。'self'
: 允许在当前文档中使用本特性,但在包含的内容(比如 iframes)仍使用原值。'src'
: (只在 iframe 中允许) 只要在src 中的 URL 和加载 iframe 用的 URL 相同,则本特性在 iframe 中允许,'none'
: 从最上层到包含的内容都禁止本特性。 <origin(s)>: 在特定的源中允许,源 URL 以空格分割。
*
或 none
值只允许单独使用,而 self
和 src
值可以与多个源一起使用。
所有的特性都有一个如下的默认的 allowlist
*
: 本特性默认在最上层和包含的内容中(iframes)允许。'self'
: 本特性默认在最上层允许,而包含的内容中(iframes)使用源地址相同设定。也就是说本特性在 iframe 中不允许跨域访问。'none'
: 本特性默认在最上层和包含的内容中(iframes)都禁止。
指令
autoplay
实验性-
控制是否允许当前文档自动播放媒体。这种控制是通过接口
HTMLMediaElement
来实现。当这种规则被禁用,而且没有用户操作的时候,HTMLMediaElement.play()
返回的Promise
会拒绝并抛出一个DOMException
异常。<audio>
和<video>
上的 autoplay 属性会被忽略。 camera
-
控制是否允许当前文档使用视频输入设备。当这种规则被禁用时,
MediaDevices.getUserMedia()
返回的Promise
会拒绝并抛出NotAllowedError
DOMException
异常。 document-domain
实验性-
控制是否允许当前文档设置
document.domain
。当这种规则被禁用时,尝试设置document.domain
会失败并抛出SecurityError
DOMException
异常。 encrypted-media
实验性-
控制是否允许当前文档使用 Encrypted Media Extension API(EME)。当这种规则被禁用时,
Navigator.requestMediaKeySystemAccess()
返回的Promise
会拒绝并抛出DOMException
异常。 fullscreen
-
控制是否允许当前文档使用
Element.requestFullScreen()
。当这种规则被禁用时,返回的Promise
会拒绝并抛出TypeError
。 geolocation
-
控制是否允许当前文档使用
Geolocation
接口。当这种规则被禁用时,调用getCurrentPosition()
和watchPosition()
会返回包含PERMISSION_DENIED
的PositionError
。 microphone
-
控制是否允许当前文档使用音频输入设备。当这种规则被禁用时,
MediaDevices.getUserMedia()
返回的Promise
会拒绝并抛出错误NotAllowedError
。 midi
-
控制是否允许当前文档使用 Web MIDI API。当这种规则被禁用时,
Navigator.requestMIDIAccess()
返回的Promise
会拒绝并抛出错误DOMException
。 payment
-
控制是否允许当前文档使用 Payment Request API。当这种规则被启用时,构造函数
PaymentRequest()
会抛出错误SecurityError
。 vr
/xr
-
控制是否允许当前文档使用 WebVR API。当这种规则被禁用时,
Navigator.getVRDisplays()
返回的Promise
会拒绝并抛出错误DOMException
。
示例
SecureCorp Inc. 公司想要在应用中禁用震动和定位 API,则可以在返回的 response 中传递以下定义权限策略的 HTTP 的标头信息:
Permissions-Policy: vibrate 'none'; geolocation 'none'
通过使用 'none'
关键词,不管原来如何设定,这些特性在所有浏览的上下文中都会被禁用。
规范
Specification |
---|
Permissions Policy # permissions-policy-http-header-field |
浏览器兼容性
BCD tables only load in the browser