web-dev-qa-db-ja.com

クリックジャッキングを停止するにはどうすればよいですか?

クリックジャッキングの講義を見ていましたが、iframeを作成してWebサイトにアクセスしようとすると、httpsがないWebサイトはクリックジャッキングに対して脆弱であることがわかりました。 SSLなしでクリックジャッキングを停止する別の方法はありますか、それとも他のものを使用する必要がありますか?

1
Miguel Nunez

応答に追加できるアンチClickJacking HTTPヘッダーがあります。

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

Denyは、フレーム、iframe、またはオブジェクトへのコンテンツの読み込みを停止します。SameOriginは、同じドメインのページへの読み込みを許可します。「Allow From」では、コンテンツをフレーム化するURIを指定できます。

ブラウザーはこれのサポートを実装しているため、ヘッダーに準拠したブラウザーを使用するユーザーに依存していますが、主要なブラウザーはしばらくの間これをサポートしていました。IE11、Edge14、およびChrome 49。

このHTTPヘッダーを応答に追加するようにWebサーバーを構成する必要があります

コンテンツセキュリティポリシーを使用している場合は、フレーム祖先を使用することもできます。

4
iainpb

Webサイトは、信頼できないオリジンがサイトをフレームに埋め込むのを防ぐことにより、クリックジャッキングを防ぎます。

これを実現するための確立された信頼できる方法は、 X-Frame-Options ヘッダーを送信することです。 Originのフレームにページを埋め込むつもりがない場合は、DENYに設定できます。

X-Frame-Options: DENY

その他のオプション は、同じドメインからのアクセスの場合はSAMEORIGIN、許可されたドメインを指定する場合はALLOW-FROMです。

クリックジャッキングを防ぐためのより近代的な(ただし広くサポートされていない)方法は、 frame-ancestors ディレクティブを使用してCSPヘッダーを送信することです。 noneに設定すると、X-Frame-Options: DENYとほぼ同じ効果があります。

Content-Security-Policy: frame-ancestors 'none';

OWASPの Clickjacking Defense Cheat Sheet で、一般的なすべてのアンチクラッキングテクニックを見つけることができます。

3
Arminius