私はいくつかのウェブサイトを運営しているので、x-frame-options応答ヘッダーのようなクリックジャッキング保護の適切な使用法は何でしょうか?ユーザーに対するこの種の攻撃の影響を受けやすいページはどれですか?
一般に、ユーザーがデータを変更できるすべてのページは、クリックジャッキングの潜在的なターゲットです。クリックジャッキングの目的は、被害者をだまして攻撃者に代わって行動を起こすことです。これは、永続的な効果を持つフォームやボタン、またはその他のUI要素を持つすべてのページに影響します。
ただし、ブラックリストアプローチを採用し、保護のために個々のページを選択することは強くお勧めします。何かを見落とすのは非常に簡単で、ページは時間の経過とともに変化する可能性があり、一見無害に見えるページでさえ、追加の脆弱性によって危険になる可能性があります。たとえば、攻撃者はサイトにクロスサイトスクリプティングの脆弱性を発見した可能性があります。これをクリックジャッキングと組み合わせることで、最初にページを設計した目的に関係なく、任意のアクションを実行できる可能性があります。
正しいアプローチはホワイトリストに登録することです。絶対にフレーム化する必要があるページを除いて、すべてページを保護します。
ヘッダーをDENY
以外に設定することは信頼できないことに注意してください。ネストされたフレームに直面した場合、現在のブラウザは通常、トップレベルのサイトをチェックするだけです。つまり、次のような状況になる可能性があります。サイトgood.com
にページをフレームとして埋め込むことを許可しますが、このサイトにはevil.com
も埋め込みます。これにより、evil.com
がページをフレーム化できますにもかかわらずX-FRAME-OPTIONS
ヘッダーがgood.com
に設定されているのは、トップレベルのサイトが実際にgood.com
であるためです。
したがって、フレーミングを許可する場合は、選択したサイトだけでなく、anyサイトでページがフレーミングされることを期待してください。