ASP.NET MVC - SQL injection

Sommario
Ci sono molti tipi di attacchi che possiamo ricevere nelle nostre applicazioni, uno dei più comuni e che può generare una grande quantità di danni è il SQL InjectionQuesto attacco consiste nel trovare vulnerabilità nel modo in cui gestiamo le query sui database per estrarre informazioni o inserire valori che potrebbero influire sulla sua funzionalità.
Per proteggerci da questo tipo di attacco, dobbiamo prima sapere in cosa consiste, in questo modo possiamo imparare che tipo di precauzioni dobbiamo prendere.
Come accennato, questo attacco fa sì che il nostro database non funzioni correttamente, per questo l'attaccante introduce dati che fanno fallire le nostre query in base a determinate vulnerabilità, con questo l'attaccante può provare prendi gli schemi delle nostre tabelle o inserire dati che possano comprometterne il funzionamento, come ad esempio inserisci un utente per accedere alla sezione amministrativa della nostra applicazione.
Uno dei modi più comuni è che inseriamo i parametri direttamente come li riceviamo dai controller, ad esempio abbiamo una ricerca per categorie e riceviamo dal controller l'identificativo di una categoria da cercare, se passa direttamente senza pulirlo può generare un attacco che mostri all'attaccante tutte le categorie esistenti.
Diamo un'occhiata al seguente codice insicuro:

INGRANDIRE

Possiamo vedere come nel linea 6 costruiamo la condizione di ricerca e poi nel linea 10 Lo passiamo direttamente al metodo che costruisce la query, un occhio inesperto potrebbe non vedere alcun problema, ma se un malintenzionato inserisce il seguente parametro: "1 o 1 = 1" potresti ottenere l'elenco di tutta la nostra tabella.
Come proteggerci?Il modo per proteggerci in questo caso, passa attraverso due passaggi fondamentali, il primo è che non possiamo permettere che i dati vengano eseguiti direttamente come li riceviamo, per questo, prima della query, dobbiamo pulire il parametro con un metodo che cerchi caratteri illegali e in caso di trovarli, inviare l'utente a una pagina 404 o pagina non trovata.
Vediamo nel codice seguente come possiamo filtrare ciò che riceviamo:

Qui recensiamo con a frase normale Lascia che siano solo i numeri ciò che riceve il nostro controller, altrimenti inviamo un messaggio, ognuno può fare la sua versione, ma l'importante è controllare ciò che riceverà la nostra applicazione.
Il secondo passo per evitare gli attacchi è non funzionano con il carattere jolly "*" e limitare sempre le query quando aspettiamo un record, in questo modo evitiamo di esporre tutti i dati nel caso qualcuno riesca a superare le nostre previsioni.
Cattura le eccezioniInfine, se un parametro illegale entra nella nostra applicazione, dobbiamo evitare a tutti i costi che esca una traccia dell'errore, poiché ha dati sensibili della nostra installazione e può essere usato contro di noi, quindi dobbiamo sempre assicurarci di catturare il eccezioni e inviare un messaggio personalizzato che non contenga molti dettagli, poiché questi dettagli possono essere visualizzati nell'ambiente di sviluppo.
Come abbiamo potuto vedere, conoscere gli attacchi ci offre una prospettiva diversa di come possiamo proteggere la nostra applicazione e come fare per dare maggiore sicurezza ai nostri utenti.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave