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会拒绝并抛出NotAllowedErrorDOMException异常。 document-domain实验性-
控制是否允许当前文档设置
document.domain。当这种规则被禁用时,尝试设置document.domain会失败并抛出SecurityErrorDOMException异常。 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> |
浏览器兼容性
Loading…