クリックジャッキング

クリックジャッキング（クリックジャック攻撃、Clickjacking、User Interface redress attack、UI redress attack、UI redressing）は、ウェブページの利用者に対し悪意をもって使用される技術の一種で、リンクやボタンなどの要素を隠蔽・偽装してクリックを誘い、利用者の意図しない動作をさせようとする手法である。たとえば、別の機能を実行するボタンに見せかけるなどして、埋め込まれたコードを利用者に気づかれないように実行する。この手口により、一見無害そうなページ上でクリックを行うだけで、情報の漏洩やコンピュータの乗っ取りにつながるおそれがある。様々なウェブブラウザやプラットフォームに共通するセキュリティ上の問題といえる。
なお "clickjacking" という表現は Jeremiah Grossman と Robert Hansen が2008年に造語したものである。
概要.
攻撃者は透明化した別のページを、利用者が開くページの上に重ねて読み込ませる。これにより利用者はそこに見えるボタンをクリックしていると思っても、実際にはその上にある別のボタンをクリックしているという状況になる。
このとき、「真正な」ページ（たとえばソーシャル・ネットワーキング・サービスの公式サイト）を重ねることもできる。つまり利用者は知らぬ間に他のサイト上で何らかの行動を取らされるおそれがある。この場合利用者は自分でボタンを押して正しい手続きを踏んでいることになるので、あとから攻撃の痕跡をたどる術はない。
クリックジャッキングはConfused deputy problem（コンピュータのもつ権限を悪用させられる問題）の一種と捉えることができる。
実例.
2009年3月、はまちや2がはてなブックマーク利用者を対象に、一見無関係なボタンを押すことにより意図せずソーシャルブックマークをさせられてしまうというデモンストレーションを公開した。
対策.
利用者側.
Mozilla Firefoxでは、NoScriptというアドオンが提供するClearClick機能が利用できる。他のブラウザでも、攻撃に使用されるFlashなどのプラグイン、iframe、JavaScriptを手動で無効にすることはできるが、クリックジャッキングはCSSのみでも実現可能なため、完全に防ぐことはできない。
提供者側.
クリックジャッキングにより利用者に不本意なクリックをさせることを避けたいウェブサイト管理者は、HTTPレスポンスヘッダーにcodice_1を含めることで、そのウェブページを他のサイトのページのiframeに呼び出さないようにウェブブラウザに指示することができる。2015年現在、主要なウェブブラウザのすべてがこの指示に従う。