Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

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

共同作成者

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

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

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

この機能をイネーブルにするには、認証時にパラメータをに true`設定し `csrfToken`ます。デフォルトはです `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/v3/authorize"

trueの場合、 `GridCsrfToken`Grid Managerへのサインインにはランダムな値でクッキーが設定され、Tenant Managerへのサインインにはランダムな値でクッキーが設定さ `AccountCsrfToken`れます。

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

  • `X-Csrf-Token`ヘッダーの値がCSRFトークンクッキーの値に設定されたヘッダー。

  • エンドポイントがフォームエンコードされた本文を受け入れる場合: `csrfToken`フォームエンコードされた要求本文パラメータ。

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

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