X-Frame-Options とは、Web ページが iframe、frame、embed、object 要素で他のページに埋め込まれることを制御する HTTP レスポンスヘッダーです。クリックジャッキング攻撃の防止を主な目的として、RFC 7034 で定義されています。
設定可能な値は 3 つあります。DENY (すべての埋め込みを拒否)、SAMEORIGIN (同一オリジンからの埋め込みのみ許可)、ALLOW-FROM uri (指定した URI からの埋め込みのみ許可、ただし非推奨) です。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><a href="https://www.amazon.co.jp/s?k=HTTP%20セキュリティヘッダー&tag=<%= amazonTag %>" target="_blank" rel="nofollow noopener noreferrer" class="amazon-inline-link">Amazon の関連書籍</a><% } else { %>Amazon の関連書籍<% } %>も参考になります。
現在では、X-Frame-Options の代わりに CSP (Content Security Policy) の frame-ancestors ディレクティブの使用が推奨されています。frame-ancestors はより柔軟な制御が可能で、複数のオリジンを指定できます。ただし、古いブラウザとの互換性のため、両方を併用することが一般的です。
短縮 URL サービスでは、リダイレクトページやプレビューページに X-Frame-Options: DENY を設定し、攻撃者のページに埋め込まれることを防止します。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><a href="https://www.amazon.co.jp/s?k=セキュリティ%20ヘッダー%20設定&tag=<%= amazonTag %>" target="_blank" rel="nofollow noopener noreferrer" class="amazon-inline-link">セキュリティヘッダー設定の実践書</a><% } else { %>セキュリティヘッダー設定の実践書<% } %>も役立ちます。