AZ Tools

Permissions-Policy 头构建器

网络

Permissions-Policy 头是 Feature-Policy 的现代替代:告诉浏览器你的页面及其 iframe 被允许使用哪些功能。一次选一个功能,并选择是完全阻止、只允许同源、允许任何源还是限制为自定义列表。该工具按类别标记知名功能(摄像头、麦克风、地理位置、支付、USB 等),让你不漏掉咬你的那个。警告捕捉不安全的默认值 —— 把功能交给每个嵌入源的通配符、缺少方案的自定义列表。

预设
传感器
  • accelerometer
    读取加速度计
  • gyroscope
    读取陀螺仪
  • magnetometer
    读取磁力计
  • ambient-light-sensor
    读取环境光
媒体捕获
  • camera
    使用用户的摄像头
  • microphone
    使用用户的麦克风
  • autoplay
    自动播放媒体
  • display-capture
    通过 getDisplayMedia 屏幕共享
  • speaker-selection
    选择输出音频设备
支付 & 认证
  • payment
    使用 Payment Request API
  • publickey-credentials-get
    使用 WebAuthn
显示
  • fullscreen
    程序化进入全屏
  • picture-in-picture
    打开画中画视频
  • screen-wake-lock
    保持屏幕唤醒
  • xr-spatial-tracking
    使用 WebXR 空间追踪
其他
  • geolocation
    读取用户位置
  • clipboard-read
    读取剪贴板内容
  • clipboard-write
    写入剪贴板
  • usb
    使用 Web USB
  • serial
    使用 Web Serial
  • bluetooth
    使用 Web Bluetooth
  • idle-detection
    检测用户空闲
  • midi
    使用 Web MIDI
  • web-share
    使用 Web Share API
响应头
Permissions-Policy: autoplay=(self), fullscreen=(self), picture-in-picture=(self), clipboard-write=(self), web-share=(self)

对每个 HTML 响应应用。如果你想让浏览器把违规发回收集器,使用 Report-To + `report-uri` 指令(此处未构建)。

使用方法

  1. 从严格预设(全部关闭)开始,只开启你的页面实际需要的。
  2. 对于大多数页面级功能 `self` 是正确答案。`*` 很少是正确答案 —— 它让每个 iframe 都能使用该功能。
  3. 自定义模式接受源允许列表(`https://embed.example.com https://other.com`)。`self` 和 `*` 是令牌,其他需要完整源。

常见问题

Permissions-Policy 与 Feature-Policy?
同样的思路,新的语法。Feature-Policy 每个指令使用空格分隔的源列表;Permissions-Policy 使用结构化头 `feature=(origin1 origin2)`。浏览器现在尊重 Permissions-Policy;如果你支持旧浏览器,在过渡窗口期间提供两者。
为什么通配符 `*` 有风险?
通配符把功能交给每个嵌套 iframe —— 包括你不完全信任的第三方嵌入。如果恶意广告或供应链妥协注入 iframe,`*` 是 "他们可以用摄像头监视" 与 "他们不能" 的差异。

相关工具