KNOWLEDGE ARTICLE

Permissions-Policy 是什么?

浏览器功能权限策略

限制页面及其嵌入内容使用摄像头、定位等浏览器能力。

核心解释

Permissions-Policy 通过响应标头按来源授权或禁用浏览器功能,可减少第三方 iframe 获得不必要能力的范围。

Permissions-Policy 如何约束浏览器能力

Permissions-Policy 允许网站控制当前页面和嵌入 iframe 能否使用摄像头、麦克风、定位、全屏、剪贴板等浏览器功能。它通过响应标头定义来源允许列表,并可与 iframe allow 属性配合,把第三方组件限定在最小必要能力。

策略不等于用户授权。即使页面获得策略允许,涉及敏感能力时浏览器仍可能询问用户;策略拒绝则可在更早阶段阻止页面请求该能力。浏览器支持的功能名称会随规范演进,未知指令通常被忽略。

顶层页面与 iframe 权限如何相交

  • 顶层响应的 Permissions-Policy 建立页面树上限,嵌入文档不能自行突破父页面已经禁止的能力。
  • iframe 的 allow 属性可对具体嵌入进一步收紧或委派,来源匹配需要考虑 self、明确 origin 与特殊值。
  • 用户浏览器权限、操作系统权限、安全上下文和功能策略必须同时满足,能力才可能真正可用。
  • 第三方支付、视频会议和地图组件需要明确能力清单;给所有 iframe 宽泛授权会扩大被入侵组件的影响面。
iframe 使用浏览器能力需要同时满足顶层策略、iframe 委派、用户和系统权限
嵌套页面中的能力委派地图说明顶层策略、iframe allow、用户授权和操作系统权限的交集

如何从业务能力反推最小策略

普通内容站点通常不需要摄像头、麦克风或定位,可以默认关闭;会议或上传业务则按页面和可信来源开放。策略应由实际功能需求产生,而不是复制一份包含大量无效或过时指令的模板。

上线时应在目标浏览器验证真实功能和控制台报告。第三方域名变更、iframe 重构和浏览器指令改名都可能让功能失效,监控应覆盖用户授权前后的完整流程。

实际应用与信息解读

取得策略后可以展示明确禁用、仅 self 或允许特定来源的能力。策略缺失表示网站没有通过该标头额外收紧,浏览器默认与用户授权仍然存在,因此不能写成页面已经获得所有权限。

发现宽泛委派时,可推测第三方内容拥有更大的能力申请范围;是否形成实际风险还取决于 iframe、用户授权和业务数据。未检查嵌入树时应限制结论范围。

重点关注

没有该标头不代表页面已经取得敏感权限;用户授权、浏览器默认限制和 iframe 属性仍共同生效。

常见问题

Permissions-Policy 能跳过用户授权吗?

不能。它只限制页面是否有资格请求功能,摄像头、麦克风和定位等仍受浏览器与操作系统授权控制。

没有这个标头就能自动使用所有能力吗?

不能。浏览器默认规则、安全上下文和用户权限仍会限制,缺失只表示没有额外声明策略。

iframe 的 allow 可以突破父页面策略吗?

不能突破父页面已经禁止的上限,只能在父策略允许范围内进一步委派或收紧。

权威资料