Anda di halaman 1dari 1

A injeo de comandos SQL (Structured Query Language) um ataque muito utilizado hoe em

dia. Esse tipo de falha no do servidor de banco de dados, mas sim da aplicao
desenvolvida para interagir com este banco. Esta aplicao pode ser em ASP, PHP, JSP ou
qualquer outro tipo de linguagem voltada ao desenvolvimento de aplicao que de alguma
forma interaja com banco de dado. Este tipo de ataque consiste basicamente de conseguir
injetar uma instruo diretamente no banco de dados, isso pode ser feito para se obter alguma
informao, modificar dados, destruir dados ou at mesmo apagar todo o banco.

O grande perigo do SQL Injection que no preciso descobrir um servio de web-server
vulneravel, mas sim, me aproveitar de um descuido do programador que esqueceu de validar
algum campo, e que por consequncia este pode receber uma instruo sql.

Para evitar ataques SQL INJECTOR so: Parametrizao das consultas, usar stored
procedures, Escapar toda entrada fornecida pelo usurio, limitar privilgio aos acessos.
Usando a funo addslashes() tem o mesmo efeito que habilitar magic quotes, porm s aplica
onde for conveniente. O que ela faz colocar um caracter de escapa antes das aspas simples
ou dupla, antes da barra invertida e do caracter NULL.

Usar prepared statements ao invs do prprio cdigo SQL atribuindo todas as outras medidas
de preveno usar esta, nos daria mais performace e segurana, alm de ser mais simples de
ler e escrever. Porem s pode ser usado em SELECT, INSERT, UPDATE, REPLACE, DELETE
e CREATE TEBLA.

$longin = $_GET[login] $query=SELECT*FROM registos WHERE login=$login;

Ficaria assim:

$query = SELEC * FROM registos WHERE login = OR1;

Para se proteger do SQL injection verificar se todo parmetro passado para o site tratado
antes que seja concatenado na query.

Por exemplo:

ASP

Consulta = DELETE FROM tabela WHERE id_tabela = & Request.Form(id)

PHP

$consulta = DELETE FROM tabela WHERE ID_TABELA = . $_POST [id];

Anda mungkin juga menyukai