meta 要素で使えないディレクティブ
HTML の meta 要素に frame-ancestors と sandbox を書いた例です。この 2 つは meta では効果がないため、HTTP ヘッダーに移す必要があるエラーとして示します。
入力
Content-Security-Policy の値
frame-ancestors 'self'; sandbox
どこに書くポリシーか
HTML の meta 要素(http-equiv)
結果
エラー 2 件・警告 0 件・情報 2 件
指摘(エラー・警告・情報)
- エラー 1 番目(frame-ancestors) frame-ancestors は meta 要素のポリシーでは使えません(CSP3 3.3)。HTTP ヘッダーで送ってください。
- エラー 2 番目(sandbox) sandbox は meta 要素のポリシーでは使えません(CSP3 3.3)。HTTP ヘッダーで送ってください。
- 情報 全体 meta 要素のポリシーは Report-Only にできません。Report-Only を試すときは HTTP ヘッダーで送ります(CSP3 3.3)。
- 情報 全体 default-src がありません。読み込み系ディレクティブ(6.1 節)は、指定のないものが default-src に戻る仕組みです。default-src がないと、指定していない種類の読み込みは制限されません(CSP3 6.1.3)。script-src もないため、スクリプトの読み込み元は制限されません。
| 読み取ったディレクティブ | 2 個 |
|---|---|
| 指摘の件数 | エラー 2 件・警告 0 件・情報 2 件 |
| 判定の範囲 | 構文・ディレクティブ名・ソース式の形・仕様に書かれた組み合わせだけを機械的に判定します。ポリシーの強さや安全性は判定せず、指摘がなくても安全とは限りません |
ディレクティブの一覧
| ディレクティブ | 値 | 区分 | 意味(CSP3 の節) |
|---|---|---|---|
| frame-ancestors | 'self' | ナビゲーション | このページを埋め込める親(CSP3 6.4) |
| sandbox | (値なし) | 文書 | サンドボックスの制限(値はトークンの並び)(CSP3 6.3) |
検算(この結果になる理由)
CSP3 3.3 は meta 要素で report-uri・frame-ancestors・sandbox を使えないと定めます。2 つがエラーです。さらに meta では Report-Only にできない旨と、default-src がない旨の情報が 1 件ずつで、情報は合計 2 件になります。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 確認した範囲は CSP Level 3 の構文・ソース式・ディレクティブ一覧までです。Trusted Types や upgrade-insecure-requests など別仕様のディレクティブは「判定しない」として表に出します。
- ポリシーの強さ(回避されにくさ)や、実際のページが壊れないかどうかは判定しません。ブラウザの実装差も扱いません。
- 複数のポリシー(ヘッダーが複数行)を合成したときの結果は計算しません。最初の 1 行だけを読みます。
- 実際にサイトへ接続してヘッダーを取得する機能はありません。貼り付けた文字だけを読みます。
ご利用にあたって
- 結果は仕様にもとづく構文の点検で、ポリシーの強さやサイトの安全性を保証するものではありません。「指摘なし」を「安全」と読み替えないでください。
- 本番の設定を変えるときは、まず Report-Only で挙動を確かめ、ページが壊れないことを検証環境で確認してください。