クロスサイト リクエスト フォージェリ(CSRF)の防止方法

CSRFトークンを使用してクッキーによる認証を強化すると、StorageGRID Webscaleに対するクロスサイト リクエスト フォージェリ(CSRF)攻撃を防ぐことができます。グリッド管理インターフェイステナント管理インターフェイスでは、このセキュリティ機能が自動的に有効になっています。他のAPIクライアントでは、この機能を有効にするかどうかをサインインの際に選択できます。

攻撃者が(たとえばHTTPのPOSTを使用して)別のサイトへの要求をトリガーできる場合、サインインしているユーザのクッキーを使用して特定の要求を送信することができます。

StorageGRID Webscaleでは、CSRFトークンを使用してCSRF攻撃を防ぐことができます。この機能が有効な場合、特定のクッキーの内容が特定のヘッダーまたは特定のPOSTパラメータの内容と一致する必要があります。

この機能を有効にするには、認証時にcsrfTokenパラメータをtrueに設定します。デフォルトはfalseです。
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "{
  \"username\": \"MyUserName\",
  \"password\": \"MyPassword\",
  \"cookie\": true,
  \"csrfToken\": true
}" "https://example.com/api/v2/authorize"

trueに設定すると、グリッド管理インターフェイスへのサインインに対してはGridCsrfTokenクッキーが、テナント管理インターフェイスへのサインインに対してはAccountCsrfTokenクッキーが、それぞれランダムな値を使用して設定されます。

これらのクッキーが存在する場合は、システムの状態を変更できるすべての要求(POST、PUT、PATCH、DELETE)には次のどちらかが含まれている必要があります。

その他の例および詳細については、オンラインのAPIドキュメントを参照してください。

注:CSRFトークン クッキーが設定されている要求では、本文にJSONが必要なすべての要求に対して「Content-Type: application/json」ヘッダーも適用され、CSRF攻撃からの保護がさらに強化されます。