Structured Query Language (SQL ) é um método de gerenciamento de dados armazenados em um banco de dados. SQL e línguas relacionadas são freqüentemente usados para gerenciar assinaturas de sites e e-commerce. A injeção de SQL é um método de usar uma consulta SQL mal formado em um site para ganhar o controle do banco de dados SQL ou o acesso a informações protegidas , tais como listas de usuários , senhas e endereços de email. Alterando suas práticas de programação podem proteger seu site de ataques de injeção SQL . Instruções
1
Escolha uma biblioteca de SQL ou estrutura que não permite consultas não verificados responsável por injeções SQL . Enumeração Fraqueza comum recomenda camadas de persistência , como o Hibernate e Enterprise Java Beans , que protegem contra a injeção de SQL , quando instalado e usado corretamente.
2
Processo consultas SQL usando procedimentos armazenados , consultas que aceitam apenas um parâmetro ou outras declarações preparadas em vez de consultas abertas . Evite dinamicamente construção de seqüências de consulta SQL.
3
Evite executar código com privilégios excessivos. Não todo o código precisa ser executado por uma conta com privilégios de root ou administrador. Isso vai mitigar a severidade de qualquer consulta SQL comprometida.
4
verificação de segurança Repeat e validação de entrada no lado do cliente e do lado do servidor . Os atacantes podem modificar os valores em trânsito ou no computador de usuários após a validação de entrada foi realizado.
5
Fuja caracteres especiais a partir de consultas SQL. Estes podem incluir caracteres especiais , como aspas ou operadores , como o sinal de igual e espaço em branco.
6
Assumir toda a entrada é malicioso ou mal formado. Em vez de usar uma lista negra de cordas inaceitáveis para consultas SQL , use uma whitelist de consultas conhecidos, bem formatados .
7
limitar a entrada a um conjunto de valores de entrada fixos , como no caso de um lista de estados ou países , quando possível.
8
mensagens de erro limite para apenas o mínimo de informação . Os atacantes podem usar mensagens de erro detalhadas para obter mais informações sobre o sistema. Log de erro explícita a um log do servidor , em vez de exibi-lo ao usuário.
9
Use um firewall para se defender contra alguns ataques de injeção SQL . Use firewalls respeitáveis que são configurados e mantidos. Um firewall não nega a necessidade de programação adequada e não irá proteger de todas as vulnerabilidades.