I siti Web e le app richiedono spesso l'input dell'utente per soddisfare appieno il loro scopo. Se un sito Web consente agli utenti di iscriversi, gli utenti devono essere in grado di fornire il proprio indirizzo e-mail. E lo shopping online richiede ovviamente l'inserimento dei dati di pagamento.
Il problema con l'input dell'utente, tuttavia, è che consente anche a un hacker di inserire qualcosa di dannoso nel tentativo di indurre il sito Web o l'app a comportarsi male. Per proteggersi da ciò, qualsiasi sistema che offre l'input dell'utente deve disporre della convalida dell'input.
Quindi cos'è la convalida dell'input e come funziona?
Che cos'è la convalida dell'input?
La convalida dell'input è il processo di analisi degli input e di rifiuto di quelli considerati non idonei. L'idea alla base della convalida dell'input è che consentendo solo input che soddisfano criteri specifici, diventa impossibile per un utente malintenzionato inserire un input progettato per causare danni a un sistema.
La convalida dell'input deve essere utilizzata su qualsiasi sito Web o applicazione che consente l'input dell'utente. Anche se un sito Web o un'app non memorizza informazioni riservate, consentire input non validi può anche causare problemi di esperienza utente.
Perché la convalida dell'input è importante?
La convalida dell'input è importante per due motivi, vale a dire l'esperienza dell'utente e la sicurezza.
Esperienza utente
Gli utenti spesso immettono input non validi, non perché stiano tentando di attaccare un sito Web o un'app, ma perché hanno commesso un errore. Un utente potrebbe scrivere una parola in modo errato o fornire informazioni errate, ad esempio inserendo il proprio nome utente nella casella sbagliata o provando una password obsoleta. Quando ciò accade, la convalida dell'input può essere utilizzata per informare l'utente del proprio errore, consentendogli di correggerlo rapidamente.
La convalida dell'input impedisce inoltre scenari in cui le iscrizioni e le vendite vengono perse perché un utente non è informato e quindi ritiene che sia stato fornito l'input corretto quando non lo è stato.
Sicurezza
La convalida dell'input impedisce un'ampia gamma di attacchi che possono essere eseguiti contro un sito Web o un'applicazione. Questi attacchi informatici possono causare il furto di informazioni personali, consentire l'accesso non autorizzato ad altri componenti e/o impedire il funzionamento di un sito Web/applicazione.
Anche l'omissione della convalida dell'input è facile da rilevare. Gli aggressori possono utilizzare programmi automatici per inserire input non validi sui siti Web in blocco e determinare come reagiscono i siti Web. Possono quindi lanciare attacchi manuali su qualsiasi sito Web non protetto.
Ciò significa che la mancanza di convalida dell'input non è solo un'importante vulnerabilità; è una vulnerabilità che verrà spesso trovata e quindi spesso può causare hack.
Cosa sono gli attacchi di convalida dell'input?
Un attacco di convalida dell'input è qualsiasi attacco che comporta l'aggiunta di input dannoso in un campo di input dell'utente. Esistono molti tipi diversi di attacchi di convalida dell'input che tentano di fare cose diverse.
Overflow del buffer
Un overflow del buffer si verifica quando vengono aggiunte troppe informazioni a un sistema. Se la convalida dell'input non viene utilizzata, non c'è nulla che impedisca a un utente malintenzionato di aggiungere tutte le informazioni che desidera. Questo si chiama a attacco di overflow del buffer. Può causare l'interruzione del funzionamento di un sistema e/o l'eliminazione delle informazioni attualmente memorizzate.
SQL Injection
SQL injection è il processo di aggiunta di query SQL ai campi di input. Potrebbe assumere la forma di aggiungere una query SQL a un modulo Web o aggiungere una query SQL a un URL. L'obiettivo è indurre il sistema a eseguire la query. L'iniezione SQL può essere utilizzata per accedere a dati protetti e per modificare o eliminare i dati. Ciò significa che la convalida dell'input è particolarmente vitale per qualsiasi sito Web o app che memorizza informazioni importanti.
Cross Site Scripting
Lo scripting tra siti comporta aggiunta di codice ai campi di input dell'utente. Viene spesso eseguito aggiungendo codice alla fine di un URL appartenente a un sito Web affidabile. L'URL può essere condiviso tramite forum o social media e il codice viene quindi eseguito quando una vittima fa clic su di esso. Questo crea una pagina Web dannosa che sembra essere ospitata sul sito Web affidabile.
L'idea è che se una vittima si fida del sito Web di destinazione, dovrebbe fidarsi anche di una pagina Web dannosa che sembra appartenere ad esso. La pagina Web dannosa può essere progettata per rubare sequenze di tasti, reindirizzare ad altre pagine e/o avviare download automatici.
Come implementare la convalida dell'input
La convalida dell'input non è difficile da implementare. Devi semplicemente capire quali regole sono necessarie per impedire input non validi e quindi aggiungerle al sistema.
Scrivi tutti gli input di dati
Creare un elenco di tutti i possibili input dell'utente. Ciò richiederà di esaminare tutti i moduli utente e considerare altri tipi di input come i parametri URL.
Crea regole
Una volta ottenuto un elenco di tutti gli input di dati, è necessario creare regole che determinino quali input sono accettabili. Ecco alcune regole comuni da implementare.
- Whitelisting: consente solo l'inserimento di caratteri specifici.
- Blacklisting: impedisce l'inserimento di caratteri specifici.
- Formato: consenti solo input che aderiscono a un formato particolare, ad esempio consenti solo indirizzi e-mail.
- Lunghezza: consenti solo input fino a una certa lunghezza.
Implementare le regole
Per implementare le regole, dovrai aggiungere codice al sito Web o all'applicazione che rifiuta qualsiasi input che non le segue. A causa della minaccia rappresentata da input non validi, il sistema dovrebbe essere testato prima di andare in diretta.
Crea risposte
Supponendo che si desideri che la convalida dell'input aiuti anche gli utenti, è necessario aggiungere messaggi che spieghino sia perché un input non è corretto sia cosa dovrebbe invece essere aggiunto.
La convalida dell'input è un requisito per la maggior parte dei sistemi
La convalida dell'input è un requisito importante per qualsiasi sito Web o app che consente l'input dell'utente. Senza controlli su quale input viene aggiunto a un sistema, un utente malintenzionato dispone di una gamma di tecniche che possono essere utilizzate per scopi di hacking.
Queste tecniche possono bloccare un sistema, alterarlo e/o consentire l'accesso a informazioni private. I sistemi senza convalida dell'input diventano bersagli popolari per gli hacker e Internet viene costantemente cercato per loro.
Mentre la convalida dell'input viene utilizzata principalmente per motivi di sicurezza, svolge anche un ruolo importante nel dire agli utenti quando aggiungono qualcosa in modo errato.