Structured Query Language ( SQL) è un metodo di gestione dei dati memorizzati in un database . SQL e linguaggi relativi 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 non valida su un sito web per ottenere il controllo del database SQL o l'accesso a informazioni protette , come le liste di utenti, password e indirizzi email . Alterare le pratiche di programmazione in grado di proteggere il vostro sito web da attacchi di SQL injection . Istruzioni
1
Promuovi una libreria di SQL o di un quadro che non consente le query non verificati responsabile di iniezioni SQL. Debolezza Enumeration Comune raccomanda strati di persistenza , come Hibernate e Enterprise Java Beans , che proteggono da SQL injection se installati e utilizzati correttamente .
2
Process query SQL mediante le stored procedure , query che accettano solo un parametro o altre istruzioni preparate anziché query indeterminato . Evitare di costruire dinamicamente 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. Ciò attenuare la gravità di una query SQL compromessa .
4
Ripeti controllo di sicurezza e validazione di ingresso 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 le citazioni o gli operatori , come il segno di uguale spazio e nero.
6
assumere tutte input è dannoso o malformato . Invece di utilizzare una lista nera di stringhe inaccettabili per le query SQL , utilizzare una whitelist di conosciute , query ben formattati.
7
ingresso Limitato a un insieme di valori di input fissi , come ad esempio nel caso di un elenco di stati o paesi , quando possibile.
8
Limit messaggi di errore per informazioni solo minime. Gli aggressori possono utilizzare messaggi di errore dettagliati per ottenere ulteriori informazioni sul sistema . Registrare l'errore esplicito a un registro del server anziché visualizzare all'utente .
9
utilizzare un firewall per difendersi da alcuni attacchi di SQL injection . Utilizzare i firewall rispettabili che sono configurazione e mantenuta correttamente . Un firewall non nega la necessità di una programmazione adeguata e non protegge da tutte le vulnerabilità .