Protezione contro la falsificazione delle richieste tra siti (CSRF)
È possibile contribuire a proteggersi dagli attacchi CSRF (Cross-Site Request Forgery) contro StorageGRID utilizzando i token CSRF per migliorare l'autenticazione che utilizza i cookie. Grid Manager e Tenant Manager abilitano automaticamente questa funzionalità di sicurezza; altri client API possono scegliere se abilitarla o meno al momento dell'accesso.
Un aggressore in grado di attivare una richiesta a un sito diverso (ad esempio con un modulo HTTP POST) può far sì che determinate richieste vengano effettuate utilizzando i cookie dell'utente che ha effettuato l'accesso.
StorageGRID aiuta a proteggersi dagli attacchi CSRF utilizzando i token CSRF. Se abilitato, il contenuto di un cookie specifico deve corrispondere al contenuto di un'intestazione specifica o di un parametro del corpo POST specifico.
Per abilitare la funzione, impostare csrfToken
parametro a true
durante l'autenticazione. L'impostazione predefinita è 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"
Quando è vero, un GridCsrfToken
il cookie è impostato con un valore casuale per gli accessi a Grid Manager e AccountCsrfToken
il cookie viene impostato con un valore casuale per gli accessi al Tenant Manager.
Se il cookie è presente, tutte le richieste che possono modificare lo stato del sistema (POST, PUT, PATCH, DELETE) devono includere uno dei seguenti elementi:
-
IL
X-Csrf-Token
intestazione, con il valore dell'intestazione impostato sul valore del cookie token CSRF. -
Per gli endpoint che accettano un corpo codificato in formato: A
csrfToken
parametro del corpo della richiesta codificato nel modulo.
Per configurare la protezione CSRF, utilizzare"API di gestione della griglia" O"API di gestione degli inquilini" .
|
Le richieste che hanno impostato un cookie token CSRF applicheranno anche l'intestazione "Content-Type: application/json" per qualsiasi richiesta che prevede un corpo di richiesta JSON come protezione aggiuntiva contro gli attacchi CSRF. |