AZ Tools

Permissions-Policy ヘッダービルダー

ネットワーク

Permissions-Policy ヘッダーは Feature-Policy のモダンな代替:ページとその iframe がどの機能を使うことが許可されるかをブラウザに伝える。各機能を 1 つずつ選び、完全にブロックされるか、同じオリジンのみ許可されるか、任意のオリジンに許可されるか、カスタムリストに制限されるかを選ぶ。ツールは、よく知られた機能(カメラ、マイク、ジオロケーション、ペイメント、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
    PIP ビデオを開く
  • 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 を注入する場合、`*` は「彼らはカメラでスパイできる」対「できない」の差。

関連ツール