A injeção de SQL é um ataque malicioso em um banco de dados de computador , em que um atacante inserções, ou injeta , uma consulta SQL - um pedido formal para o banco de dados - em uma seqüência que , eventualmente, é executado pelo banco de dados? , através dos dados que ele entra num programa de computador . Se for bem sucedido , uma injeção de SQL pode extrair dados confidenciais do banco de dados , inserir, atualizar ou excluir dados ou até mesmo desligar o sistema de gerenciamento de banco de dados. Injeção de SQL dinâmico
SQL leva vantagem de uma técnica de programação conhecida como "SQL dinâmico. " O texto completo de uma instrução SQL dinâmica, ou comando, é desconhecido quando um programa é compilado, mas é construído, de forma dinâmica, a partir da entrada de dados pelo usuário quando o programa é executado. Um atacante termina o comando construído prematuramente e acrescenta um novo comando, terminado com uma marca de comentário , como "-" , para que qualquer texto subseqüente é ignorado no momento da execução . De uma forma um pouco mais sofisticada de injeção de SQL , um atacante injeta código malicioso em dados que são armazenados no banco de dados , quando os dados armazenados são recuperados e utilizados para construir uma instrução SQL dinâmica , o código malicioso é executado
< . br >
Efeitos
Exatamente o que os atacantes podem alcançar através de injecção SQL depende da sua imaginação e habilidade, mas conseqüências típicas de uma injeção de SQL são a perda de forma confidencial , a perda da integridade dos dados e problemas relacionados com a a autenticação, ou autorização, de usuários de banco de dados. Se as informações de autorização é realizada no próprio banco de dados , uma injeção de SQL pode extrair a informação, ou modificá-lo , de modo que usuários não autorizados podem se conectar ao banco de dados.
Plataformas afetadas
injeção de SQL , obviamente, se aplica a SQL , a linguagem de consulta mais comuns de banco de dados , mas qualquer plataforma que requer interação com um banco de dados SQL podem ser afetados. Vulnerabilidades de injeção SQL são fáceis de detectar e fáceis de explorar , o que fez com que a injeção de SQL tornou-se um problema comum com os pacotes de software de banco de dados e sites de bases de dados .
Validação
Se um ataque injeta código SQL malicioso que executa sem erros , não há nenhuma maneira de detectar a injeção de SQL a partir de um programa de computador. Programadores de banco de dados deve, portanto, rever todo o código do programa que constrói instruções SQL dinâmicas e validar todas as entradas de usuário , sem fazer quaisquer suposições sobre o tamanho , o conteúdo ou o tipo de dados. Um atacante pode deliberadamente incorporar uma declaração " DROP TABLE " , ou algum outro , declaração igualmente malicioso em um campo de texto , para que os programadores devem garantir que os programas se comportam de forma adequada em tais circunstâncias.
< Br >