解説
「クリックジャッキング」(Clickjacking)は、Webページ上でユーザーのクリックを乗っ取る攻撃です。他のWebページを読み込むiframeと、CSSのopacity(要素の透明度を指定)を組み合わせて、透明のWebサイトを重ねて表示します。
そして、ユーザーが見えているWebページのボタンやリンクをクリックしたら、実際には透明のWebページのボタンやリンクをクリックさせて、意図せぬ操作をさせます。
この攻撃により、SNSの操作を勝手にされたり、オンラインバンキングの操作を気づかぬうちにさせたりすることができます。
クリックジャッキングは、iframeでページが読み込まれることによって起きます。Webサイト側では、HTTPレスポンスヘッダに設定を加えることで、iframeに読み込まれるのを防ぐことができます。
| DENY | 全てのページで禁止 |
| SAMEORIGIN | 同一オリジンのみ許可 |
| ALLOW-FROM | 指定したオリジンのページのみ許可 |
サンプル
クリックジャッキングのサンプルです。別のページを、ボタンの上に重ねて表示しています。本来は別のサイトですが、oter_site.htmlという別ファイルを薄く重ねています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
<style>
iframe { position: absolute; left: 0px; top: 0px;
opacity: 0.5; }
</style>
</head>
<body>
<button>クリックしてね!</button>
<iframe width="250" height="50" src="oter_site.html"></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<a href="https://codezine.jp/" target="_blank">CodeZine(コードジン)</button>
</body>
</html>
