Che cos'è un'iniezione SQL?
Un'iniezione SQL (Structured Query Language) è un tipo di attacco che viene quasi sempre tentato contro un sito Web guidato dal database. È uno sforzo per inserire codice dannoso nelle query SQL del sito al fine di interferire con la gestione dei dati distruggendo, alterando o rivelando i dati archiviati nelle tabelle del database che guida il sito. SQL è un linguaggio di programmazione standard utilizzato per creare, aggiornare e recuperare i dati archiviati nei database.
I pericoli degli attacchi di SQL injection sono numerosi e spesso molto devastanti quando vengono eseguiti con successo. Le informazioni sensibili come numeri di carta di credito, cartelle cliniche di una persona, nomi utente e password per account come servizi bancari online ed e-mail nonché vari tipi di numeri di identificazione possono essere esposti ai criminali informatici. Sebbene il furto di dati sia probabilmente l'obiettivo principale di chiunque tenti di utilizzare l'iniezione SQL, non è l'unica motivazione per l'uso di questo o di qualsiasi altro tipo di tecnica di iniezione di codice, come lo scripting cross-site. I visitatori di un sito Web che visualizzano informazioni che non gli piacciono potrebbero tentare attacchi di iniezione SQL per disabilitare il sito, rubare dati o alterare i dati per distruggere la missione delle persone dietro il sito.
A volte un tentativo di iniezione SQL viene tentato contro un sito Web da un visitatore scontento che potrebbe essere stato bandito dal suo account dai proprietari del sito, che invidia la popolarità del sito o che cerca di distruggere il business online di qualcuno che considera essere un nemico. Ovviamente è richiesta la conoscenza di SQL per lanciare un attacco di iniezione SQL, ma generalmente non è considerato un linguaggio molto difficile da imparare, rispetto ad altri linguaggi di programmazione, e molto può essere realizzato solo con una comprensione di base, ma solida, di come usare esso. Ciò significa che ci sono un buon numero di persone che navigano in Internet che hanno le competenze necessarie per tentare l'iniezione di SQL su un sito Web.
Gli sviluppatori Web, in particolare quelli specializzati nello sviluppo Web back-end, hanno la responsabilità di garantire che i siti che programmano siano sicuri contro l'iniezione di SQL. Esiste quasi sempre più di un modo per ottenere una sicurezza così importante e la maggior parte di questi metodi sono considerati soluzioni semplici ma molto efficaci. Ad esempio, uno sviluppatore può utilizzare la funzione mysql_real_escape_string () o istruzioni preparate durante gli script nel linguaggio preprocessore ipertestuale (PHP). I metodi scelti per proteggersi dagli attacchi devono essere attentamente considerati, poiché le prestazioni del sito nel suo insieme non possono essere ignorate anche durante l'impostazione della sicurezza.