Lar Segurança O que é uma injeção de sql? - o que é techopedia

O que é uma injeção de sql? - o que é techopedia

Índice:

Anonim

Definição - O que significa Injeção SQL?

Uma injeção de SQL é um ataque de computador no qual o código malicioso é incorporado a um aplicativo mal projetado e depois passado ao banco de dados de back-end. Os dados maliciosos produzem resultados da consulta ao banco de dados ou ações que nunca deveriam ter sido executadas.

Techopedia explica injeção SQL

Vamos ver um exemplo de ataque de injeção SQL:


Um aplicativo que executa as operações de um banco contém menus que podem ser usados ​​para procurar detalhes do cliente usando pontos de dados, como o número do Seguro Social do cliente. Em segundo plano, o aplicativo chama uma consulta SQL que é executada no banco de dados passando os valores de pesquisa inseridos da seguinte maneira:


SELECIONE nome_do_cliente, telefone, endereço, data_de_birth WHERE social_sec_no = 23425


Neste script de amostra, o usuário digita o valor 23425 na janela do menu do aplicativo, solicitando que o usuário insira o número do Seguro Social. Em seguida, usando o valor fornecido pelo usuário, uma consulta SQL é executada no banco de dados.


Um usuário com conhecimento de SQL pode entender o aplicativo e, em vez de inserir um valor único quando solicitado pelo número do Seguro Social, insira a sequência "23425 ou 1 = 1", que é passada ao banco de dados da seguinte maneira:


SELECT nome_do_cliente, telefone, endereço, data_de_natalidade WHERE social_sec_no = 23425 ou 1 = 1


A cláusula WHERE é importante porque introduz vulnerabilidade. Em um banco de dados, a condição 1 = 1 sempre é verdadeira e, como a consulta foi especificada para retornar os detalhes do número de Seguro Social do cliente (23425) ou WHERE 1 = 1, a consulta retornará todas as linhas da tabela, que não eram as Intenção original.


O exemplo de ataque de injeção SQL acima é simples, mas mostra como explorar uma vulnerabilidade para induzir o aplicativo a executar uma consulta ou comando de banco de dados back-end.


Os ataques de injeção de SQL podem ser mitigados, garantindo o design adequado do aplicativo, especialmente em módulos que requerem entrada do usuário para executar consultas ou comandos no banco de dados. No exemplo acima, o aplicativo pode ser alterado para aceitar apenas um valor numérico.

O que é uma injeção de sql? - o que é techopedia