クリックジャッキング (Clickjacking) とは、透明または不可視の iframe を正規のページの上に重ね、ユーザーが意図しないボタンやリンクをクリックさせる攻撃手法です。UI Redressing 攻撃とも呼ばれます。
たとえば、攻撃者のページ上に「無料プレゼント」ボタンを表示し、その裏に透明な iframe で SNS の「いいね」ボタンを配置することで、ユーザーが気づかないうちに「いいね」を押させるといった攻撃が可能です。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><a href="https://www.amazon.co.jp/s?k=クリックジャッキング%20対策&tag=<%= amazonTag %>" target="_blank" rel="nofollow noopener noreferrer" class="amazon-inline-link">Amazon の関連書籍</a><% } else { %>Amazon の関連書籍<% } %>も参考になります。
クリックジャッキングの防止には、X-Frame-Options HTTP ヘッダーまたは CSP の frame-ancestors ディレクティブを使用します。X-Frame-Options: DENY はすべての iframe 埋め込みを拒否し、SAMEORIGIN は同一オリジンからの埋め込みのみを許可します。
短縮 URL サービスのプレビューページやリダイレクトページでは、X-Frame-Options ヘッダーを設定して iframe への埋め込みを防止することが推奨されます。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><a href="https://www.amazon.co.jp/s?k=Web%20アプリ%20脆弱性%20対策&tag=<%= amazonTag %>" target="_blank" rel="nofollow noopener noreferrer" class="amazon-inline-link">Web アプリ脆弱性対策の実践書</a><% } else { %>Web アプリ脆弱性対策の実践書<% } %>も役立ちます。