x frame optionsと同一オリジンポリシ
広告
yukiさん
(No.1)
x frame optionsと同一オリジンポリシーについて教えて下さい。
x frame options 例えばサイトAのコンテンツを他のサイトBにframe を使って呼び出されないようにする
今のイメージは上記なのですがここまでは合っているのでしょうか?
するといくつか質問があります。
httpのレスポンスヘッダにx frame optionsを付けるのですか?
だとするとサイトBにframeでAサイトを表示させると
サイトBがhttpリクエストをサイトAに送るのでしょうか?
また基本は同一オリジンポリシーでサイトAとサイトBはオリジンが違うからコンテンツ呼び出せない気がするのですが、どうなのでしょうか?
まだ理解が不十分でよく分かっておりません。
どこがどう間違っているか教えていただけると幸いです。
x frame options 例えばサイトAのコンテンツを他のサイトBにframe を使って呼び出されないようにする
今のイメージは上記なのですがここまでは合っているのでしょうか?
するといくつか質問があります。
httpのレスポンスヘッダにx frame optionsを付けるのですか?
だとするとサイトBにframeでAサイトを表示させると
サイトBがhttpリクエストをサイトAに送るのでしょうか?
また基本は同一オリジンポリシーでサイトAとサイトBはオリジンが違うからコンテンツ呼び出せない気がするのですが、どうなのでしょうか?
まだ理解が不十分でよく分かっておりません。
どこがどう間違っているか教えていただけると幸いです。
2023.04.03 22:07
pixさん
★SC ダイヤモンドマイスター
(No.2)
すみません。少々説明が難しいのでその点はご容赦願います。
X-Frame-OptionsはHTTPレスポンスヘッダです。
ページをiframeなどで表示してよいか否かを設定します。
オプションは以下の2つです
X-Frame-Options DENY
フレーム内の表示を禁止する
X-Frame-Options SAMEORIGIN
同一オリジンのみ許可する
はい。おおむね、そのイメージであっています。
HTTPレスポンスヘッダとしてX-Frame-Optionsを追加します。
サイトBでHTMLの<iframe>タグでサイトAを参照する時に、
サイトBからHTTPリクエストをサイトAに送ります。
少々混同されているようです。
同一オリジンポリシーがデフォルトで有効なのはJavaScriptなどの
クライアントスクリプトです。
スクリプトの標準機能で、スクリプトから外部のリソースへのアクセスを
禁止します。
これによりスクリプトから情報を読み出すような攻撃を防ぎます。
スクリプトからのアクセスを許可する方法としてCORSがあります。
しかし、<iframe>タグはJavaScriptなどではなく、HTMLのタグです。
デフォルトではフレーム内にページの表示が許可されています。
X-Frame-Optionsの設定によりフレーム内に表示していいかどうかを
Webブラウザが制御します。
主にクリックジャッキング攻撃を防ぐために設定されます。
X-Frame-OptionsはHTTPレスポンスヘッダです。
ページをiframeなどで表示してよいか否かを設定します。
オプションは以下の2つです
X-Frame-Options DENY
フレーム内の表示を禁止する
X-Frame-Options SAMEORIGIN
同一オリジンのみ許可する
>x frame options 例えばサイトAのコンテンツを他のサイトBにframe を
>使って呼び出されないようにする
>今のイメージは上記なのですがここまでは合っているのでしょうか?
はい。おおむね、そのイメージであっています。
>httpのレスポンスヘッダにx frame optionsを付けるのですか?
>だとするとサイトBにframeでAサイトを表示させると
>サイトBがhttpリクエストをサイトAに送るのでしょうか?
HTTPレスポンスヘッダとしてX-Frame-Optionsを追加します。
サイトBでHTMLの<iframe>タグでサイトAを参照する時に、
サイトBからHTTPリクエストをサイトAに送ります。
>また基本は同一オリジンポリシーでサイトAとサイトBはオリジンが違うから
>コンテンツ呼び出せない気がするのですが、どうなのでしょうか?
少々混同されているようです。
同一オリジンポリシーがデフォルトで有効なのはJavaScriptなどの
クライアントスクリプトです。
スクリプトの標準機能で、スクリプトから外部のリソースへのアクセスを
禁止します。
これによりスクリプトから情報を読み出すような攻撃を防ぎます。
スクリプトからのアクセスを許可する方法としてCORSがあります。
しかし、<iframe>タグはJavaScriptなどではなく、HTMLのタグです。
デフォルトではフレーム内にページの表示が許可されています。
X-Frame-Optionsの設定によりフレーム内に表示していいかどうかを
Webブラウザが制御します。
主にクリックジャッキング攻撃を防ぐために設定されます。
2023.04.04 08:09
yukiさん
(No.3)
ご回答ありがとうございます。
サイトBでHTMLの<iframe>タグでサイトAを参照する時に、
サイトBからHTTPリクエストをサイトAに送ります。
WEBブラウザ→サイトBにHTTPリクエスト、サイトB→サイトAにHTTPリクエスト
サイトA→サイトBにHTTPレスポンス、サイトB→WEBブラウザにHTTPレスポンス
という流れになるのでしょうか?
クライアントスクリプトです。
適用範囲が違うのですね!
<iframe>はデフォルトでクロスオリジンも許可されているからx frame optionsで許可範囲を制御
JavaScriptはデフォルトでSOPが有効な為、クロスオリジンも許可したい場合はCORS
で許可する。
こんなイメージでしょうか?
>HTTPレスポンスヘッダとしてX-Frame-Optionsを追加します。
サイトBでHTMLの<iframe>タグでサイトAを参照する時に、
サイトBからHTTPリクエストをサイトAに送ります。
WEBブラウザ→サイトBにHTTPリクエスト、サイトB→サイトAにHTTPリクエスト
サイトA→サイトBにHTTPレスポンス、サイトB→WEBブラウザにHTTPレスポンス
という流れになるのでしょうか?
>同一オリジンポリシーがデフォルトで有効なのはJavaScriptなどの
クライアントスクリプトです。
適用範囲が違うのですね!
<iframe>はデフォルトでクロスオリジンも許可されているからx frame optionsで許可範囲を制御
JavaScriptはデフォルトでSOPが有効な為、クロスオリジンも許可したい場合はCORS
で許可する。
こんなイメージでしょうか?
2023.04.04 10:34
pixさん
★SC ダイヤモンドマイスター
(No.4)
>>サイトBでHTMLの<iframe>タグでサイトAを参照する時に、
>>サイトBからHTTPリクエストをサイトAに送ります。
>WEBブラウザ→サイトBにHTTPリクエスト、サイトB→サイトAにHTTPリクエスト
>サイトA→サイトBにHTTPレスポンス、サイトB→WEBブラウザにHTTPレスポンス
>という流れになるのでしょうか?
すみません。先ほどの説明に誤りがありました。サイトAにアクセスするのは
WEBブラウザです。
WEBブラウザ→サイトBにHTTPリクエスト
サイトB→WEBブラウザにHTTPレスポンス、HTMLを返す
WEBブラウザ→サイトAにHTTPリクエスト
サイトA→WEBブラウザにHTTPレスポンス、HTMLを返す
WEBブラウザでサイトAからのHTTPレスポンスのX-Frame-Optionsを調べて
iframe内にHTMLを表示してよいか判断
です。
>適用範囲が違うのですね!
><iframe>はデフォルトでクロスオリジンも許可されているから
>x frame optionsで許可範囲を制御
>JavaScriptはデフォルトでSOPが有効な為、クロスオリジンも許可したい場合は
>CORSで許可する。
はいそのイメージでよいと思います。
2023.04.04 13:27
yukiさん
(No.5)
>WEBブラウザでサイトAからのHTTPレスポンスのX-Frame-Optionsを調べて
>iframe内にHTMLを表示してよいか判断
サイトAはコンテンツ自体はブラウザにHTTPレスポンスで返すのですか?
表示させるかの判断はブラウザ側ということは、
不正なブラウザを自作したら見れるのでしょうか?
意味のないことかもしれませんが気になってしまったので、、
2023.04.04 14:41
pixさん
★SC ダイヤモンドマイスター
(No.6)
>>WEBブラウザでサイトAからのHTTPレスポンスのX-Frame-Optionsを調べて
>>iframe内にHTMLを表示してよいか判断
>サイトAはコンテンツ自体はブラウザにHTTPレスポンスで返すのですか?
>表示させるかの判断はブラウザ側ということは、
>不正なブラウザを自作したら見れるのでしょうか?
>意味のないことかもしれませんが気になってしまったので、、
はい。見れます。
多少誤解されている点があると思われます。
サイトAもサイトBもWebブラウザではなく、curlなどのコマンドラインを使えば、
普通にPCからページを取得できます。個別にみることは問題ないです。
クリックジャッキングはiframeを利用してサイトAとサイトBを重ねて表示し、
利用者を騙すものです。
2つのサイトが重なることによって攻撃が成立するものなので、個別に
アクセスしただけでは特に意味はありません。
2つのサイトがiframe経由で重ねられないようにするための、X-Frame-Optionsの
設定になります。
クリックジャッキングの詳細についてはネットを検索してみてください。
2023.04.04 15:18
yukiさん
(No.7)
ありがとうございます!
もう一度調べてみます。
もう一度調べてみます。
2023.04.04 15:52
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告