web-dev-qa-db-ja.com

クリックジャッキングのxフレームオプションをバイパスする

MitMを使用したり、別の方法でパケットを変更したりせずにx-frame-optionsヘッダーをバイパスする方法はありますか?

したがって、実際には、x-frame-options:DENYがiframeに表示されるサイトを取得しています。

3
Wealot

X-Frame-Optionsヘッダーを使用する場合、1つの注意点があります。 最上位フレームのみをチェックする です。つまり、ネストされたフレーム、つまりフレーム内のフレームがある場合でも、別のOriginがX-Frame-Options: SAMEORIGINヘッダーを持つサイトを含めることが可能です。

この点で、ヘッダーContent-Security-Policy: frame-ancestors 'self'は、allフレームの祖先をチェックするため、より優れています。

frame within frame

6
Sjoerd

したがって、実際には、x-frame-options:DENYがiframeに表示されるサイトを取得しています。

X-Frame-Options: DENYヘッダーを送信するサイトをフレームに埋め込むことはできません。

から RFC 7034

拒否する

ただし、一部のブラウザはトップレベルのOriginのみをチェックし、直接のフレームの親をチェックしないため、SAMEORIGINディレクティブをバイパスできる場合があります。

 SAMEORIGIN 
このヘッダーフィールドを持つコンテンツを受信するブラウザは、コンテンツ自体とは異なるOrigin 
のページのフレームにこのコンテンツを表示してはなりません
。 [...] 
 
現在の実装は、この基準の
の解釈によって異なることに注意してください。 場合によっては、最上位のブラウジングコンテキストのオリジンが
であり、X-Frame-Options 
ディレクティブ。それ以外の場合は、代わりにフレーミングの起源
ページを考慮します。

(私自身の強調。)

1
Arminius