? Um ataque de SQL , ou ataque de injeção de SQL , envolve a inserção , ou injeção, de código malicioso em valores , ou variáveis , que um usuário insere em um programa de computador. O código malicioso é ligado , ou concatenado , com SQL legítimo comandos para produzir um comando que produz resultados inesperados. SQL
SQL , também conhecida como Estrutura Query Language , é uma linguagem padrão da indústria para criar, atualizar e consultar bancos de dados relacionais ou bancos de dados que compreendem vários arquivos de informações relacionadas, geralmente armazenados em tabelas de linhas e colunas . SQL é muitas vezes incorporado em linguagens de programação de propósito geral para criar programas que permitem aos usuários interagir com um banco de dados . Um programa pode incluir instruções SQL, como "SELECT * FROM nome_da_tabela ONDE nometabela . Nome do campo = variablename ", no qual tabela é o nome de uma tabela no banco de dados , nome do campo é o nome de uma coluna, ou no campo, na tabela, e variablename é um valor de entrada pelo usuário.
gravidade
a severidade de um ataque de SQL é limitado apenas pela imaginação e habilidade do atacante . Ao inserir estrategicamente o ponto e vírgula (;) e duplo hífen (-) personagens - que delimitam os comandos SQL e comentários respectivamente - os atacantes podem terminar prematuramente comandos existentes e acrescentar seus próprios novos comandos . Estes novos comandos podem , por exemplo, extrair dados confidenciais do banco de dados , alterar ou excluir dados, ou conceder atacantes privilégios administrativos ao banco de dados . No exemplo acima , se a instrução SQL ler "SELECT * FROM nome_da_tabela ONDE nometabela nome do campo = '". + Variablename + ' "; , um usuário pode digitar comandos SQL adicionais e assim montar uma consulta algo como " SELECT * FROM tabela.campo = ' somevalue '; . DROP TABLE nome_da_tabela
Efeitos
ataques de SQL tipicamente levam a perda de confidencialidade e integridade dos dados , bem como outros problemas graves , de modo as organizações devem tomar a ameaça de ataques de SQL sério. Ataques de SQL normalmente ocorrem quando os dados entra em um programa de uma fonte não confiável ou de dados é usado para construir dinamicamente uma consulta SQL, ou ambos. Ataques SQL podem obviamente afetar próprio SQL , mas também qualquer plataforma que requer interação com um banco de dados SQL. Sites de bases de dados são alvos comuns para SQL , simplesmente porque os atacantes podem detectar e explorar falhas de SQL facilmente.
Prevenção
Desde que o código SQL injetado durante um ataque de SQL contém sem erros de sintaxe, ele irá executar com sucesso e não pode ser detectado por meio de programação . Programadores de banco de dados deve validar todas as entradas de usuário e examinar cuidadosamente qualquer código de programa que constrói e executa comandos SQL dinâmicas de vulnerabilidades.