概述
页面上任何脚本,包括被攻陷的第三方脚本,在没有策略限制时都可请求摄像头或定位。以白名单方式仅放行应用真正需要的功能,可显著缩小被滥用的能力面。
关键步骤
- 列出应用确实需要的浏览器功能。
- 下发默认禁用其余功能的 Permissions-Policy。
- 嵌入内容时仅在 iframe 的 allow 属性中授予所需功能。
- 关注控制台警告,以补充合法需要的例外。
验证
- 未使用的强力 API 不可用。
- 应用所需功能正常工作。
- iframe 仅获得最小能力。
- 被禁功能的请求被浏览器拒绝。
注意事项
- 各浏览器对指令名称与支持程度不同,部分指令可能被忽略。
- 它限制功能访问,但本身不能阻止所有数据外泄。
适用范围
本条目围绕「用 Permissions-Policy 限制浏览器功能」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
res.setHeader('Permissions-Policy',
'camera=(), microphone=(), geolocation=(), payment=(), usb=()');