Cross-site request forgery (CSRF)
CSRF sfrutta una sessione aperta per una richiesta indesiderata. Il cookie di sessione da solo non dimostra che la persona volesse eseguire l’azione.
Il cross-site request forgery, o CSRF, detto anche XSRF, è un attacco in cui un altro sito induce il browser a inviare una richiesta indesiderata a un’applicazione bersaglio. Se il browser include automaticamente credenziali valide e manca una protezione adeguata, l’applicazione può trattare la richiesta come un’istruzione della persona che ha effettuato l’accesso.
Una modifica nel portale di progetto
Un portale di progetto fittizio permette di cambiare l’indirizzo delle notifiche nel campo notificationEmail. Una persona ha effettuato l’accesso e visita anche un’altra pagina. Quest’ultima tenta di attivare la modifica. L’invio del cookie di sessione dipende, fra l’altro, dalle regole sui cookie del browser.
Verificare un cookie di sessione valido stabilisce a quale sessione appartiene la richiesta. Non dimostra che la persona volesse modificare l’indirizzo. Anche il solo uso di POST non impedisce l’attacco.
Proteggere le richieste che modificano lo stato
Per un modulo, il framework può fornire un token CSRF imprevedibile legato alla sessione. Il server verifica questo valore aggiuntivo prima della modifica. La protezione deve essere effettivamente usata per le richieste interessate.
MDN descrive anche controlli basati sui metadati Fetch, ossia informazioni del browser sul contesto della richiesta, e altri metodi adatti al tipo di richiesta. L’attributo del cookie SameSite è un ulteriore livello di protezione. Stesso sito e stessa origine (protocollo, nome host e porta) non sono equivalenti; sottodomini diversi possono appartenere allo stesso sito. Un token CSRF valido non sostituisce inoltre la verifica che la persona autenticata sia autorizzata a cambiare l’indirizzo.
Fonti
Termini correlati
- APIUn’API definisce come un programma può usare funzioni o dati messi a disposizione da un altro programma.
- HTMLHTML descrive struttura e significato dei contenuti web. Identifica elementi come titoli, tabelle e campi di inserimento.
- Cross-site scripting (XSS)Con XSS, contenuti esterni diventano codice eseguibile nel browser. Conta il modo in cui l’applicazione inserisce gli input nelle proprie pagine.
- Minimizzazione dei datiLa minimizzazione limita i dati personali a quanto è adeguato, pertinente e necessario per una finalità definita.
- Politica di conservazione dei datiUna politica di conservazione definisce scopo, inizio, durata e fine della memorizzazione. Cancellazioni e copie richiedono una gestione tecnica.
- Crittografia envelopeLa crittografia envelope separa la chiave dei dati da quella che la protegge. File cifrato e chiave dei dati avvolta vanno gestiti insieme.
Il vostro progetto con ASES
Descriveteci il vostro progetto. Vi ricontatteremo con una prima valutazione.