Come proteggere SQL da dichiarazioni Iniettare

August 3

Come proteggere SQL da dichiarazioni Iniettare


Structured Query Language (SQL) è un metodo di gestione dei dati memorizzati in un database. lingue SQL e correlate sono spesso utilizzati per gestire le sottoscrizioni di siti web e di e-commerce. Una iniezione di SQL è un metodo di utilizzo di una query SQL malformati su un sito web per ottenere il controllo del database SQL o l'accesso alle informazioni protette, come ad esempio gli elenchi di utenti, password e indirizzi e-mail. Alterare le vostre pratiche di programmazione in grado di proteggere il tuo sito web da attacchi di SQL injection.

istruzione

1 Ha scelto una libreria di SQL o di un quadro che non consente query non verificati responsabile di iniezioni SQL. Debolezza enumerazione Comune raccomanda strati di persistenza, come Hibernate e Enterprise Java Beans, che proteggono da SQL injection, se installato e usato correttamente.

2 query processo SQL utilizzando stored procedure, le query che accettano solo un parametro o altre istruzioni preparate al posto di query a tempo indeterminato. Evitare in modo dinamico la costruzione di stringhe di query SQL.

3 Evitare l'esecuzione di codice con privilegi eccessivi. Non tutto il codice deve essere eseguito da un account con privilegi di root o amministratore. In questo modo attenuare la gravità di qualsiasi query SQL compromessa.

4 controllo di sicurezza Ripetere e validazione dell'input sia sul lato client e lato server. Gli aggressori possono modificare i valori in transito o sul computer dell'utente dopo la convalida di ingresso è stata eseguita.

5 Fuga caratteri speciali da query SQL. Queste potrebbero includere caratteri speciali, come citazioni o gli operatori, come ad esempio il segno di uguale e lo spazio bianco.

6 Assumere tutte ingresso è dannoso o malformati. Invece di usare una lista nera di stringhe inaccettabili per le query SQL, utilizzare una whitelist di note, query ben formattati-.

7 Limitare ingresso ad un insieme di valori di ingresso fissi, come nel caso di un elenco di stati o paesi, quando possibile.

8 Limitare i messaggi di errore di solo le informazioni minime. Gli aggressori possono utilizzare messaggi di errore dettagliati per ottenere ulteriori informazioni sul sistema. Accedere l'errore esplicito a un registro del server piuttosto che visualizzare all'utente.

9 Utilizzare un firewall per difendere contro alcuni attacchi di SQL injection. Utilizzare i firewall affidabili che sono settati e mantenuto correttamente. Un firewall non nega la necessità di una corretta programmazione e non proteggerà da tutte le vulnerabilità.