XSRF(Cross-Site Request Forgery)またはCSRF(Cross-Site Request Forgery)対策
リクエストごとに一意のトークン(CSRFトークン)を生成し、ユーザーのセッションと紐付けを行う。このトークンは、フォーム送信やAPIリクエストに含まれ、サーバー側でトークンが正しいか検証する。
Cookieに SameSite
属性を設定することで、クロスサイトからのリクエストでCookieが送信されるのを防ぐ。
リクエストのリファラーまたはオリジンヘッダーを確認し、正当なリファラーまたはオリジンからのリクエストかをチェックする。
CSRFトークンをCookieとリクエストの両方に設定し、サーバー側で両方の値が一致するか確認する方法。
CSRF攻撃は、主にユーザーが意図しないリクエストが自動的に行われることで発生する。そのため、データを変更するような操作はPOSTやPUTメソッドに限定し、GETリクエストでは実行しないようにする。
特に重要な操作については、二段階認証や再認証を求めることで、攻撃者が勝手に操作を実行するのを防ぐ。