用語解説

Permissions-Policyとは?HTML共有・AI生成サイトでの意味をやさしく解説

Permissions-Policyは、ページがカメラ・マイク・位置情報・全画面表示などのブラウザ機能をどの範囲で使えるかを制御するHTTPヘッダーです。AI生成HTMLやiframeで埋め込んだコンテンツが意図せず機能を要求するのを防ぐために知っておくべき設定です。

ひとことで言うと

Permissions-Policyは「このページではカメラを使ってよいか」「位置情報を取得してよいか」をブラウザに事前に宣言するヘッダーです。許可されていない機能をJavaScriptから呼び出そうとすると、ブラウザがブロックします。

以前はFeature-Policyと呼ばれていましたが、現在はPermissions-Policyに統一されています。AI生成HTMLでは旧称のFeature-Policyタグが出力されることがあるため、現在の仕様に合わせてPermissions-Policyで設定されているか確認してください。

  • 相手がログインなしで開ける状態か確認する
  • PCとスマホで最低1回ずつ表示を確認する
  • 内部情報・個人情報・不要な外部送信が残っていないか見る
  • レビュー期限と修正時の差し替え方を決めておく

HTML共有で関係する場面

AI生成HTMLにYouTube動画のiframeが含まれている場合、YouTubeはiframe内で全画面表示やピクチャーインピクチャーを使います。これらがブロックされると動画再生UIが壊れることがあります。iframeのallow属性で`allow="fullscreen; picture-in-picture"`を指定すると必要な機能を許可できます。

逆に、AI生成HTMLに意図せずカメラやマイクへのアクセスを要求するJavaScriptが含まれていた場合、Permissions-Policyで`camera=()、microphone=()`と設定しておけばブロックできます。社外に共有するHTMLには最小権限の原則を適用し、必要ない機能は明示的に禁止しておくことをお勧めします。

よくある誤解

「Permissions-Policyを設定しなければデフォルトで全機能が使えない」という誤解があります。実際はブラウザごとにデフォルトの許可状態が異なります。カメラ・マイクはユーザー許可が必要、位置情報も同様で、全画面はデフォルトで許可されているなど、機能によって初期値が違います。

「iframeのallow属性とPermissions-Policyヘッダーは同じもの」という混乱もよくあります。iframeのallow属性はその特定のiframe内での機能制御、Permissions-Policyヘッダーはページ全体とそのiframe両方に影響します。両方設定する場合、より制限的な方が適用されます。

安全に使うための注意点

共有するHTMLのmetaタグでPermissions-Policyを設定するには、`<meta http-equiv="Permissions-Policy" content="camera=(), microphone=(), geolocation=()">` と記述します。ただしメタタグによるPermissions-Policyは一部ブラウザで制限があり、HTTPヘッダーで設定する方が確実な制御ができます。

AIに生成を依頼する際は「iframeを含む場合はallow属性で必要な機能のみを許可し、それ以外は制限すること」と明示すると安全なiframe設定が生成されます。特にYouTubeやGoogleマップのiframeは公式の埋め込みコードをそのまま使うと適切なallow属性が含まれています。

よくある質問

Permissions-PolicyでカメラをブロックしてもユーザーがブラウザのUIから許可できますか?

Permissions-Policyで明示的にブロック(camera=())した場合、ユーザーがブラウザの許可ダイアログで許可しようとしても機能しません。ページ側のポリシーがブラウザの許可より優先されます。

AI生成HTMLにPermissions-Policyが設定されていない場合、セキュリティ上の問題はありますか?

ブラウザのデフォルト設定に依存する状態になります。機密性の高い情報が含まれるHTMLや外部に共有するHTMLでは、最低限カメラ・マイク・位置情報をブロックする設定を追加することを推奨します。

Permissions-PolicyとCSPはどう使い分けますか?

Permissions-PolicyはブラウザAPIの機能制御、CSPは読み込むリソースの制御が目的です。XSS対策にはCSP、カメラや位置情報などのデバイス機能制御にはPermissions-Policyと、それぞれ異なる問題を解決するため両方の設定が必要なケースがあります。

関連記事

「用語解説」の記事をもっと見る →