← 中文资源

简体中文版本

用 Permissions-Policy 限制浏览器功能

下发允许清单之外的强力功能一律禁用的响应头,使注入或第三方代码无法调用摄像头等能力。

阅读英文原文

概述

页面上任何脚本,包括被攻陷的第三方脚本,在没有策略限制时都可请求摄像头或定位。以白名单方式仅放行应用真正需要的功能,可显著缩小被滥用的能力面。

关键步骤

  1. 列出应用确实需要的浏览器功能。
  2. 下发默认禁用其余功能的 Permissions-Policy。
  3. 嵌入内容时仅在 iframe 的 allow 属性中授予所需功能。
  4. 关注控制台警告,以补充合法需要的例外。

验证

  • 未使用的强力 API 不可用。
  • 应用所需功能正常工作。
  • iframe 仅获得最小能力。
  • 被禁功能的请求被浏览器拒绝。

注意事项

  • 各浏览器对指令名称与支持程度不同,部分指令可能被忽略。
  • 它限制功能访问,但本身不能阻止所有数据外泄。

适用范围

本条目围绕「用 Permissions-Policy 限制浏览器功能」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

res.setHeader('Permissions-Policy',
  'camera=(), microphone=(), geolocation=(), payment=(), usb=()');