5

別のドメインで次のような単純なページを使用して、クリックジャッキングの軽減をテストしています。

<iframe src="https://my.domain/login"></iframe>

私のログインページは、次のヘッダーを送信します。

HTTP/1.1 302 Found
X-Frame-Options: SAMEORIGIN
Location: https://my.domain/landing
...

IE 10 と Chrome 33 の両方がリダイレクトに従い、ランディング ページを .xml 内に表示することに驚いています<iframe>。私のランディング ページは を送信しませんが、ログイン ページの最初のページがリダイレクトに勝るX-Frame-Optionsと予想していました。X-Frame-Optionsログイン ページがフレーム内に表示されているときに、ブラウザーがリダイレクトをたどらないようにするにはどうすればよいですか?

<iframe>ログインページがHTTPリダイレクトを送信しない場合、期待どおりに機能する(空/ブロックされる)ことを追加する必要があります。

4

1 に答える 1

12

RFC 7034で使用されている用語から、ブラウザーは X-Frame-Options 制限を HTTP リダイレクト (ステータス コード 301、302 など) に適用するのではなく、ブラウザーがコンテンツを処理するすべての応答に適用すると結論付けています。

「X-Frame-Options」を使用すると、ホスト B の Web ページで、そのコンテンツ (ボタン、リンク、テキストなど) を別のページのフレーム (または) に表示してはならないことを宣言できます (たとえば、ホスト A から)。これは、HTTP ヘッダーで宣言され、ここに記載されているようにブラウザーの実装によって適用されるポリシーによって行われます。<frame><iframe>

また:

X-Frame-Options HTTP ヘッダー フィールドは、送信されたリソースをブラウザが 内または 内でレンダリングする<frame>かどうかを指定するポリシーを示します<iframe>。サーバーは、HTTP 応答のヘッダーでこのポリシーを宣言して、クリックジャッキング攻撃を防ぐことができます。これにより、サーバーのコンテンツが他のページやフレームに埋め込まれなくなります。

ログイン ページの代わりに、HTTP ステータス コード 200 と、リダイレクト用のメタ タグまたは JavaScript を返すことができます。その後、X-Frame-Option が適用されますが、見苦しいことは認めます。

于 2014-10-09T11:06:34.503 に答える