KNOWLEDGE ARTICLE
Permissions-Policy 是什么?
浏览器功能权限策略
限制页面及其嵌入内容使用摄像头、定位等浏览器能力。
核心解释
Permissions-Policy 通过响应标头按来源授权或禁用浏览器功能,可减少第三方 iframe 获得不必要能力的范围。
Permissions-Policy 如何约束浏览器能力
Permissions-Policy 允许网站控制当前页面和嵌入 iframe 能否使用摄像头、麦克风、定位、全屏、剪贴板等浏览器功能。它通过响应标头定义来源允许列表,并可与 iframe allow 属性配合,把第三方组件限定在最小必要能力。
策略不等于用户授权。即使页面获得策略允许,涉及敏感能力时浏览器仍可能询问用户;策略拒绝则可在更早阶段阻止页面请求该能力。浏览器支持的功能名称会随规范演进,未知指令通常被忽略。
顶层页面与 iframe 权限如何相交
- 顶层响应的 Permissions-Policy 建立页面树上限,嵌入文档不能自行突破父页面已经禁止的能力。
- iframe 的 allow 属性可对具体嵌入进一步收紧或委派,来源匹配需要考虑 self、明确 origin 与特殊值。
- 用户浏览器权限、操作系统权限、安全上下文和功能策略必须同时满足,能力才可能真正可用。
- 第三方支付、视频会议和地图组件需要明确能力清单;给所有 iframe 宽泛授权会扩大被入侵组件的影响面。
如何从业务能力反推最小策略
普通内容站点通常不需要摄像头、麦克风或定位,可以默认关闭;会议或上传业务则按页面和可信来源开放。策略应由实际功能需求产生,而不是复制一份包含大量无效或过时指令的模板。
上线时应在目标浏览器验证真实功能和控制台报告。第三方域名变更、iframe 重构和浏览器指令改名都可能让功能失效,监控应覆盖用户授权前后的完整流程。
实际应用与信息解读
取得策略后可以展示明确禁用、仅 self 或允许特定来源的能力。策略缺失表示网站没有通过该标头额外收紧,浏览器默认与用户授权仍然存在,因此不能写成页面已经获得所有权限。
发现宽泛委派时,可推测第三方内容拥有更大的能力申请范围;是否形成实际风险还取决于 iframe、用户授权和业务数据。未检查嵌入树时应限制结论范围。
重点关注
没有该标头不代表页面已经取得敏感权限;用户授权、浏览器默认限制和 iframe 属性仍共同生效。
常见问题
Permissions-Policy 能跳过用户授权吗?
不能。它只限制页面是否有资格请求功能,摄像头、麦克风和定位等仍受浏览器与操作系统授权控制。
没有这个标头就能自动使用所有能力吗?
不能。浏览器默认规则、安全上下文和用户权限仍会限制,缺失只表示没有额外声明策略。
iframe 的 allow 可以突破父页面策略吗?
不能突破父页面已经禁止的上限,只能在父策略允许范围内进一步委派或收紧。