Injeção SQL

Autor: Peter Berry
Data De Criação: 13 Agosto 2021
Data De Atualização: 22 Junho 2024
Anonim
Injeção SQL - Tecnologia
Injeção SQL - Tecnologia

Contente

Definição - O que significa SQL Injection?

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.


Uma introdução ao Microsoft Azure e Microsoft Cloud | Neste guia, você aprenderá sobre o que é a computação em nuvem e como o Microsoft Azure pode ajudá-lo a migrar e administrar seus negócios a partir da nuvem.

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.