CSRFを防ぐには、重要な処理の要求(リクエスト)がユーザー本人による正規の手順かを確認する仕組みの導入が必要です。開発者が独自で実装するよりも、すでに対策機能が備わった信頼できるフレームワークを利用することで根本的な解決につながります。
- フレームワーク・ライブラリの利用(根本的な対策)
Spring SecurityなどのCSRF対策機能を正しく設定することで、開発者が独自に実装するよりも簡単にCSRFを防御できます。 - トークンの利用
重要な処理のリクエストに、本人しか知り得ない秘密情報(トークン)を含めることで、第三者によるリクエストの偽造を防ぎます。 - リクエストヘッダ(Referer)の確認
リクエスト元のURLを示すRefererヘッダを検証し、正規のページからのリクエストか罠サイトからの偽造リクエストかを判別します。
詳しい対策方法については、「CSRFの対策」で解説しています。併せてご覧ください。
