Sommario
C'è un tipo di attacco a cui siamo inclini e che molte volte trascuriamo, questo è il Falsificazione della richiesta su più siti o CSRF, questo è responsabile di indurre la nostra applicazione a ricevere dati che non provengono dal dominio in cui è ospitata.Questo tipo di attacco è abbastanza dannoso poiché fa sì che un utente che è stato ingannato utilizzi la propria autenticazione per inserire dati nel nostro database, immagina che con un attacco di questo tipo un utente amministrativo o magari una notizia falsa sia riuscito ad entrare nella nostra sezione delle notizie .
Come abbiamo spiegato, questo attacco inganna la nostra applicazione per ricevere dati che non provengono da se stessa, per questo sfrutta il modo in cui i protocolli funzionano come HTTP e i suoi diversi metodi, quindi un utente malintenzionato può creare un modulo e puntare al nostro controller.
Per illustrare questo attacco, diamo un'occhiata al seguente controller che è vulnerabile a questo tipo di attacco:
INGRANDIRE
Nonostante quanto fatalistico possa essere, questo attacco è evitabile, per questo dobbiamo solo fare alcune convalide che garantiscano che i dati ricevuti provengano dalla nostra applicazione, per questo possiamo usare alcune di queste tecniche:
Riferimento al dominioQuesto consiste nel verificare da quale dominio proviene la richiesta, con questo garantiamo che proviene solo dal dominio in cui è ospitata la nostra applicazione, l'unico problema o svantaggio è che se migriamo la nostra applicazione di dominio potremmo dover ricostruire la convalida nel caso non abbiamo reso dinamico. È anche possibile fare un riferimento falso sfruttando le vulnerabilità dell'applicazione come Adobe Flash.
Token generatoCon questa opzione ciò che facciamo è che all'interno del nostro modulo a gettone che è unico per utente, quindi la nostra applicazione quando riceve i moduli convalida che il token è lo stesso, in questo modo consente l'accettazione o meno dei dati. Questa è l'opzione più utilizzata in quanto è molto facile da implementare e presenta pochi o nessun inconveniente.
Nel caso del token generato ASP.NET MVC contiene alcuni metodi che possono aiutarci, il principale è @ Html.AntiForgeryToken () che genera la chiave segreta con cui la nostra applicazione può convalidare i moduli.
Vediamo quindi che ci sono più aree di quanto pensiamo e di cui dobbiamo occuparci nelle nostre applicazioni, quindi dobbiamo informarci ed essere consapevoli di come si verificano gli attacchi per escogitare modi per evitarli.