成为赞助商——支持中文 Agent 生态

了解赞助
库Agent场景库
← 返回用例列表

Permissions-Policy 功能开关与违规上报清单

按响应头 allowlist、iframe allow 继承与 Reporting-Endpoints/report-to,整理摄像头/麦克风/地理等强能力开关与违规上报核对清单;不代改生产头。

飞书DeepSeekClaudeChatGPT🛠️ 开发者工具🏢 企业协作

场景说明

面向独立开发者与前端安全:把「站点误开强能力 / 嵌入页越权」写成可对账步骤,区别于 CSP 脚本来源策略。

案例叙事

01他们做了什么

独立站与嵌入广告/小工具页常见事故:主站想禁麦克风,却仍被第三方 iframe 拉起 getUserMedia;或地理定位在生产误开 *。

MDN《Permissions-Policy header》说明:该响应头用于允许或拒绝文档及其中 iframe 使用浏览器能力。策略语法为指令=allowlist,可选 per-directive 的 report-to;多指令可用逗号分隔,也可拆成多条头。allowlist 常见取值包括 *、() 空列表、self、以及带引号的源列表;空列表表示顶层与嵌套上下文均禁用该能力。文档强调:头上的 allowlist 定义「潜在允许」的超集,iframe 的 allow 属性在该超集内再授权;因此宜在 HTTP 头写可接受的最宽范围,再在各 iframe 收窄。若 iframe 导航到未在 allow 中列出的源,默认不把策略带到新源。禁用强能力示例可将 microphone=()、geolocation=()。违规可用 Reporting API:配合 Reporting-Endpoints 命名端点,并在 Permissions-Policy 指令上写 report-to=端点名;省略时可能落到名为 default 的端点。也可用 ReportingObserver 在页内观察。本场景据此输出开关与上报核对清单。禁止声称「生产头已改好」。

02实际效果

  • 源未披露量化「平均封禁误开能力耗时」;公开文只描述头语法、iframe 继承与违规上报示例。
  • 能把「头超集 / iframe 收窄 / 空列表全禁 / report-to」拆开,避免只改 CSP 却漏能力开关。
  • 与 CSP 违规分诊边界清晰,前端安全值班可并列引用。

03值得知道

  • MDN 标注该头在部分主流浏览器可用性有限(非 Baseline),上线前须查兼容表。
  • Chrome 服务端报表字段可能用 policyId 而非 featureId,解析报表时勿写死字段名。
  • 上面写的是文档机制,不是你站点当前响应头实况。

04可复制提示词

Permissions-Policy 开关核对清单

你是浏览器 Permissions-Policy 助手。只根据提供的头与现象给核对清单,不要编造已上线配置。

当前响应头摘要:{{response_headers}}
关键 iframe allow:{{iframe_allow}}
现象/报表片段:{{symptom}}

输出 Markdown:
1. 各指令 allowlist 含义(含 * / () / self / 源列表)
2. 头超集与 iframe allow 继承提问
3. report-to 与 Reporting-Endpoints 是否成对
4. 预发验证步骤与值班一句话
禁止代改生产头;禁止索要源站私钥。

能力误开复盘提纲

生产曾误开或误禁浏览器能力,请写复盘提纲。

时间线:{{timeline}}
涉及指令:{{directives}}
变更:{{changes}}

输出:
1. 根因(头/iframe/导航丢策略)
2. 证据
3. 临时缓解
4. 防再发(CI 检查关键头、预发报表)
不要伪造「全站已合规」。

05一手来源

怎么做

  1. 粘贴当前 Permissions-Policy / Reporting-Endpoints 响应头摘要、关键 iframe allow,以及报错或报表片段
  2. Agent 按文档输出:指令 allowlist→空列表禁用→头与 iframe 继承→report-to/default 端点提问清单
  3. 人工在预发验证;Agent 不代改 CDN/网关响应头

实用提示

  • 头里的 allowlist 是超集,iframe allow 只能在该超集内再收窄;嵌入后导航到未列出的源默认不再继承
  • 与 browser-csp-violation-triage 不同:本条管 geolocation/camera/microphone 等能力开关,不是脚本来源 CSP
#Permissions-Policy#浏览器安全#iframe#Reporting API#前端