クリックジャッキングの講義を見ていましたが、iframeを作成してWebサイトにアクセスしようとすると、httpsがないWebサイトはクリックジャッキングに対して脆弱であることがわかりました。 SSLなしでクリックジャッキングを停止する別の方法はありますか、それとも他のものを使用する必要がありますか?
応答に追加できるアンチ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サーバーを構成する必要があります
コンテンツセキュリティポリシーを使用している場合は、フレーム祖先を使用することもできます。
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 で、一般的なすべてのアンチクラッキングテクニックを見つけることができます。