Schutz vor Cross-Site Request Forgery (CSRF) in StorageGRID
Sie können zum Schutz vor Cross-Site-Request-Forgery-Angriffen (CSRF) auf StorageGRID beitragen, indem Sie CSRF-Token verwenden, um die Authentifizierung über Cookies zu verbessern. Der Grid Manager und der Tenant Manager aktivieren diese Sicherheitsfunktion automatisch; andere API-Clients können beim Anmelden auswählen, ob sie diese aktivieren möchten.
Ein Angreifer, der eine Anfrage an eine andere Website auslösen kann (z. B. mit einem HTTP-Formular-POST), kann bestimmte Anfragen unter Verwendung der Cookies des angemeldeten Benutzers stellen.
StorageGRID schützt vor CSRF-Angriffen durch die Verwendung von CSRF-Tokens. Wenn diese Option aktiviert ist, muss der Inhalt eines bestimmten Cookies mit dem Inhalt eines bestimmten Headers oder eines bestimmten POST-Body-Parameters übereinstimmen.
Um die Funktion zu aktivieren, legen Sie den Parameter csrfToken während der Authentifizierung auf true fest. Der Standardwert ist 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"
Wenn dieser Wert auf „true“ festgelegt ist, wird ein GridCsrfToken-Cookie mit einem zufälligen Wert für Anmeldungen beim Grid Manager gesetzt, und das AccountCsrfToken-Cookie wird mit einem zufälligen Wert für Anmeldungen beim Tenant Manager gesetzt.
Wenn das Cookie vorhanden ist, müssen alle Anfragen, die den Zustand des Systems ändern können (POST, PUT, PATCH, DELETE), eines der folgenden enthalten:
-
Der
X-Csrf-Token-Header, wobei der Wert des Headers auf den Wert des CSRF-Token-Cookies festgelegt ist. -
Für Endpunkte, die einen formularcodierten Body akzeptieren: Ein
csrfTokenformularcodierter Anfragekörperparameter.
Zusätzliche Beispiele und Details sind in der Online-API-Dokumentation zu finden.
|
|
Anfragen, für die ein CSRF-Token-Cookie gesetzt ist, erzwingen außerdem den Header "Content-Type: application/json" für jede Anfrage, die einen JSON-Anfragetext erwartet, als zusätzlichen Schutz vor CSRF-Angriffen. |