CSRFとは
CSRF(クロスサイトリクエストフォージェリ:Cross-Site Request Forgery)とは、ユーザーが認証済みのWebサービスに対して、ユーザー本人が意図しないリクエストを悪意あるサイトから強制的に送信させる攻撃です。「リクエスト強要」とも呼ばれます。
CSRFの仕組み
銀行サービスにログイン中のユーザーが悪意あるサイトを閲覧すると、そのサイトに仕込まれた罠がユーザーのブラウザから銀行への「送金リクエスト」を自動送信します。銀行側はログイン済みユーザーからの正規リクエストとして処理してしまいます。
CSRFとXSSの違い
XSSはユーザーのブラウザでスクリプトを実行する攻撃、CSRFはユーザーの権限で意図しない操作を実行させる攻撃です。狙いと手法が異なります。
対策方法
①CSRFトークン(ワンタイムトークン)の使用、②SameSite属性付きCookieの設定、③Refererヘッダーの検証、④重要な操作には再認証を要求する設計が有効です。WordPressはwp_nonce機能でCSRF対策を標準実装しています。