≪ Today I learned. RSS購読
公開日
タグ
Security
著者
ダーシノ(@bc_rikko)

Clickjackingの攻撃手法と対策

Clickjackingとは、攻撃者がユーザーに意図しないクリックをさせる攻撃手法のこと。攻撃者は透明な要素(transparentやopacity:0など)や偽装した要素を画面上に配置し、ユーザーが意図しないボタンやリンクをクリックさせるように誘導する。海外のちょっとアレなサイトを見ているときによく遭遇するやつだ。

攻撃方法の例

<button type="submit">送信する</button>

<iframe src="https://example.com/wrong-button.html" style="position: absolute; z-index: 9999999; opacity: 0;"></iframe>

このように本来押したいボタン(今回の場合は「送信する」)の上に、透明なiframeを配置することで、意図しないボタンを押させることができる。または、ボタンを覆うように「閉じる」のような別のラベルにして配置することもある。

対策

HTTPヘッダーを使う

X-Frame-Optionsヘッダーを付与することで、<iframe><embed>などの要素を中に表示することを許可するかどうかを示せる。

ただし、現在ではContent-Security-Policyframe-ancestorsディレクティブが推奨されている。