Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

StorageGRID でクロスサイトリクエストフォージェリ(CSRF)から保護する

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

別のサイトへのリクエスト(HTTPフォームPOSTなど)をトリガーできる攻撃者は、ログインしているユーザーのCookieを使用して特定のリクエストを実行させることができます。

StorageGRID は、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/v3/authorize"

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

Cookieが存在する場合、システムの状態を変更できるすべてのリクエスト(POST、PUT、PATCH、DELETE)には、以下のいずれかを含める必要があります。

  • `X-Csrf-Token`ヘッダー。ヘッダーの値は、CSRFトークンクッキーの値に設定されます。

  • フォームエンコードされたボディを受け入れるエンドポイントの場合:A `csrfToken`フォームエンコードされたリクエストボディパラメータ。

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

メモ CSRFトークンCookieが設定されているリクエストは、CSRF攻撃に対する追加の保護として、JSONリクエストボディを想定するすべてのリクエストに対して「Content-Type: application/json」ヘッダーを強制的に適用します。