SQL Injection é uma técnica de invasão que se aproveita da programação utilizada para consultar tabelas do banco de dados para acessar, excluir ou alterar informações indevidamente.
Qualquer site que monta suas páginas com base no conteúdo de um banco de dados, como gerenciadores de conteúdo (CMS), está sujeito a receber este tipo de ataque, que pode resultar na alteração de conteúdo, incluindo a inserção de códigos maliciosos, ou no acesso a informações sigilosas.
A vulnerabilidade está presente nos scripts em que a entrada de dados do usuário, seja via formulário ou URI, usando os métodos GET ou POST, não é devidamente filtrada, permitindo o uso de comandos específicos do banco de dados. Como resultado, o invasor consegue alterar as consultas (queries) definidas pelo programador para acesso a bancos como: MySQL, SQL Server, PostgreSQL, Access, etc.
A proteção contra SQL Injection requer que o programador trate todos os parâmetros recebidos por scripts que acessam o banco de dados, com o objetivo de filtrar strings potencialmente perigosas, como:
‘ (aspas simples)
” (aspas duplas)
< (menor que)
> (maior que)
— (duplo sinal de menos)
# (cerquilha)
* (asterisco)
& (e comercial)
Comandos SQL como:
DECLARE
EXEC
SET
CAST
INSERT
DELETE
UPDATE
Os seguintes artigos trazem mais informações sobre SQL Injection (os sites serão abertos em uma nova janela):
Wikipedia – SQL Injection (português)
Wikipedia – SQL Injection (inglês)
mais informações em nosso blog :
AVISO LEGAL: Os procedimentos descritos neste documento devem ser executados de acordo com o contexto de cada sistema, de forma a evitar impactos negativos à segurança, disponibilidade, integridade e privacidade de dados. A CentralServer se reserva o direito de modificar a qualquer tempo e sem aviso prévio as informações aqui apresentadas a fim de refletir o lançamento de novos serviços, atualizações físicas e operacionais, e evolução do estado-da-arte da tecnologia.