

#
“sandbox”属性について
“sandbox”属性は埋め込む文書にセキュリティのための制限をかける属性です。
“sandbox”属性は属性値が空の状態で指定された場合、以下のように制限がかかります。
- 埋め込まれた文書は親文書とは別のオリジンを持つものみなす
- 埋め込まれた文書から別のブラウジング・コンテキスト(親文書など)を指しているリンクを無効化
- 埋め込まれた文書がフォームを実行することを許可しない
- 埋め込まれた文書がスクリプトを実行することを許可しない
その上で、決められた属性値を指定すると特定の制限のみを取り除くことができます。
#
指定できる値
属性値 | 説明 |
---|---|
allow-downloads![]() |
埋め込まれた文書がダウンロードを実行することを許可する |
allow-forms | 埋め込まれた文書がフォームを実行することを許可する |
allow-modals![]() |
埋め込まれた文書がモーダルウィンドウを開くことを許可する |
allow-orientation-lock![]() |
埋め込まれた文書がScreenOrientation APIによる画面の向きをロックする機能を無効化することを許可する |
allow-pointer-lock | 埋め込まれた文書がPointer Lock APIを使用することを許可する |
allow-popups | 埋め込まれた文書からのポップアップを有効にする |
allow-popups-to-escape-sandbox![]() |
埋め込まれた文書から新しく開いたブラウジング・コンテキストに“src”属性の値を継承しない |
allow-presentation![]() |
埋め込まれた文書がPresentation APIを使用することを許可する |
allow-same-origin | 埋め込まれた文書が親の文書と同じオリジンを持つものとみなす |
allow-scripts | 埋め込まれた文書がスクリプトを実行することを許可する |
allow-top-navigation | 埋め込まれた文書が最上位のブラウジング・コンテキストのコンテンツを操作することを許可する |
allow-top-navigation-by-user-activation![]() |
ユーザーの操作による場合に限り、埋め込まれた文書が最上位のブラウジング・コンテキストのコンテンツを操作することを許可する |
allow-top-navigation-to-custom-protocols![]() |
埋め込まれた文書が外部プロトコルを開くことを許可する |
属性値は空白文字で区切ることで複数指定することができます。
“allow-top-navigation”と“allow-top-navigation-by-user-activation”は内容が重複するため同時に指定するべきではありません。このような指定の仕方をした場合は“allow-top-navigation”だけが効果を持ちます。
“allow-top-navigation-to-custom-protocols”は“allow-top-navigation”か“allow-popups”のいずれかが指定されている場合は内容が重複するため指定するべきではありません。
#
サンプルコード
すべて制限する
<iframe src="sample-iframetag1.html" sandbox=""></iframe>
最上位のブラウジング・コンテキストのコンテンツを操作することを許可する
<iframe src="sample-iframetag1.html" sandbox="allow-top-navigation"></iframe>
ポップアップを有効にする
<iframe src="sample-iframetag1.html" sandbox="allow-popups"></iframe>