Injeção de SQL
Uma injeção de SQL é uma forma de ataque cibernético que tem como alvo sites e aplicativos web vinculados a bancos de dados. Esses ataques exploram softwares de servidor de sites e bancos de dados mal configurados para induzir um servidor a analisar instruções SQL que, de outra forma, ele não executaria. Esses ataques podem revelar informações pessoais e financeiras confidenciais, permitir que um invasor altere ou exclua informações armazenadas em um banco de dados ou fornecer outro tipo de acesso não autorizado.
Um site fica vulnerável a uma injeção de SQL quando aceita a entrada do usuário de um formulário de texto e a inclui como parte de uma consulta SQL. Em vez de preencher o campo do formulário com as informações esperadas, como um nome de usuário, o invasor insere uma sequência de texto que modifica a consulta SQL. Por exemplo, uma consulta hipotética pode começar com SELECT UserID, Name, Password FROM Users WHERE UserID = , seguida pela entrada do campo de formulário de ID do usuário. Se o usuário inserir seu ID, a consulta funcionará conforme o esperado e exibirá suas informações.
No entanto, se o servidor inserir o texto de entrada na consulta sem restrições, um invasor poderá usá-lo para modificar a própria instrução de consulta SQL. Se, em vez de um ID de usuário, alguém inserir o texto 317 OR 1=1, a consulta se tornará SELECT UserID, Name, Password FROM Users WHERE UserID = 317 OR 1=1;. Como OR 1=1 sempre resulta em verdadeiro, ele substitui o ID do usuário; a consulta, em vez disso, retorna os IDs de usuário, nomes e senhas de todas as entradas na tabela Users. Outros tipos de injeção de código podem permitir que um invasor faça login como administrador do site, exclua registros ou tabelas de um banco de dados ou, em alguns casos extremos, insira e execute scripts de shell e outros códigos.
Um administrador de site pode impedir ataques de injeção de SQL mantendo o software do servidor atualizado. Também é importante "sanitizar" as entradas do banco de dados, restringindo o texto inserido ou filtrando determinados caracteres. Os administradores de sites também podem parametrizar suas consultas SQL, usando espaços reservados na consulta que façam referência à entrada do usuário em vez de inseri-la diretamente na consulta.
Teste seus conhecimentos