Permissions-Policy の許可リストの書き方の誤り
許可リストにオリジンを引用符なしで書いた geolocation と、none と書いた camera、正しく書いた microphone を並べた例です。仕様に合わない 2 つが読み飛ばされる点を警告します。
入力
レスポンスヘッダー
Permissions-Policy: geolocation=https://example.com, camera=none, microphone=(self "https://a.example")
ヘッダーを受け取った通信
HTTPS(暗号化された通信)
結果
エラー 0 件・警告 2 件・情報 3 件
指摘(エラー・警告・情報)
- 情報 Strict-Transport-Security Strict-Transport-Security がありません。HTTPS で配信しているサイトが、ブラウザに HTTPS だけで接続させたいときに送るヘッダーです(RFC 6797)。必要かどうかはサイトの方針で決めます。
- 情報 Referrer-Policy Referrer-Policy がありません。リファラーの扱いはブラウザの既定に任されます(W3C Referrer Policy 8.1)。方針を固定したいときに指定します。
- 警告 Permissions-Policy geolocation の許可リスト「https://example.com」は *・self・かっこ付きの一覧のどれでもありません。この形のメンバーは読み飛ばされます(Permissions Policy 5.2)。オリジンは geolocation=("https://example.com") のようにかっこと二重引用符で書き、無効にするときは geolocation=() と書きます。
- 警告 Permissions-Policy camera の許可リスト「none」は *・self・かっこ付きの一覧のどれでもありません。この形のメンバーは読み飛ばされます(Permissions Policy 5.2)。オリジンは camera=("https://example.com") のようにかっこと二重引用符で書き、無効にするときは camera=() と書きます。
- 情報 Permissions-Policy 機能の名前(geolocation など)が有効かどうかは判定していません。ブラウザは知らない機能名を無視します(Permissions Policy 5.2)。名前の綴りは各ブラウザの一覧で確認してください。
| 読み取ったヘッダー | 1 行 |
|---|---|
| 指摘の件数 | エラー 0 件・警告 2 件・情報 3 件 |
| 判定の範囲 | Strict-Transport-Security・Referrer-Policy・Permissions-Policy の有無と構文だけを機械的に判定します。サイトの安全性は判定せず、指摘がなくても安全とは限りません |
ヘッダーごとの解釈
| ヘッダー | 項目 | 値 | 解釈(構文のみ) |
|---|---|---|---|
| Strict-Transport-Security | - | (ヘッダーなし) | このヘッダーはありません |
| Referrer-Policy | - | (ヘッダーなし) | このヘッダーはありません |
| Permissions-Policy | geolocation | https://example.com | 許可リストの形でない(無視される) |
| Permissions-Policy | camera | none | 許可リストの形でない(無視される) |
| Permissions-Policy | microphone | (self "https://a.example") | 次に許可する: 自分のオリジン、https://a.example |
| Content-Security-Policy | - | (ヘッダーなし) | このヘッダーはありません |
検算(この結果になる理由)
W3C Permissions Policy 5.2 では、許可リストは *、self、引用符つき文字列、かっこ付きの一覧のどれかで、それ以外の形は読み飛ばされます。引用符なしのオリジンと none の 2 件が警告で、microphone は書式が正しいため指摘なしです。機能名を検証しない情報と、2 つのヘッダーがない情報で情報は 3 件です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- X-Content-Type-Options など、このツールが仕様を確認していないヘッダーは判定せず、読み飛ばします。
- Permissions-Policy の機能の名前(geolocation など)が有効かどうかは判定しません。構文だけを確かめます。
- サイトの安全性やヘッダーの設定が十分かどうかは判定しません。書式が仕様に合うかを機械的に確かめるだけです。
- 実際にサイトへ接続してヘッダーを取得する機能はありません。貼り付けた文字だけを読みます。
ご利用にあたって
- 結果は仕様にもとづく書式の点検で、サイトの安全性を保証するものではありません。「指摘なし」を「安全」と読み替えないでください。
- 認証情報や内部のホスト名を含むヘッダーは、ダミーに置き換えて貼り付けてください。入力は保存・送信しませんが、画面共有などでは見えます。