Ir ao conteúdo
  • Cadastre-se

Testando a Segurança de seu Site – Parte 3


     17.158 visualizações    Redes    0 comentários
Testando a Segurança de seu Site – Parte 3

Injeção SQL

Injeção SQL é uma falha de segurança onde o hacker é capaz de acessar seu banco de dados através da manipulação de variáveis do script. Este tipo de acesso pode ser usado para adicionar novo conteúdo ao seu banco de dados, modificar o conteúdo existente, apagar seu banco de dados ou permitir o acesso ao painel de controle do seu sistema.

Para compreender como isso é possível, vamos descrever os fundamentos de como o script pega dados das variáveis presentes na URL e como os valores dessas variáveis podem ser usados para acessar o banco de dados.

Supondo que você tenha uma URL como http://www.seusite.com.br/artigo.php?id=12345, isto significa que ela passará para o script “artigo.php” a variável “id” com o valor “12345”.

Agora, dentro do script, essa variável será usada para acessar o banco de dados, através de uma query  como:

SELECT titulo,conteudo FROM artigos WHERE id=$id;

Essa query instrui o banco de dados a puxar o conteúdo das colunas “titulo” e “conteudo” da tabela “artigos”, onde a coluna “id” equivale ao valor passado através da variável “$id”. Usando a URL dada como exemplo, essa query puxará o título e o conteúdo do artigo número 12345.

Mas e se o hacker manipular o valor da variável “$id”? Caso o hacker modifique a URL para algo como:

http://www.seusite.com.br/artigo.php?id=12345;DELETE%20FROM%20artigos

A query enviada ao banco de dados será:

SELECT titulo,conteudo FROM artigos WHERE id=12345;DELETE FROM artigos;

E adivinhe o que acontecerá? A tabela “artigos” será apagada.

No entanto, a forma mais comum de injeção SQL é para conseguir acesso ao painel de controle do site.

Vamos supor que o hacker encontrou a tela de login, pedindo o nome do usuário e uma senha, e que o login e a senha sejam inseridos em uma query como:

SELECT * FROM usuarios WHERE login= '$login ' AND senha= '$senha ';

Agora, vamos assumir que o hacker simplesmente digitou 1' OR '1' = '1 como login e 1' OR '1' = '1 como senha. Estes valores geram a seguinte query:

SELECT * FROM usuarios WHERE login='1' OR '1' = '1' AND senha= '1' OR '1' = '1';

Devido à lógica adicionada (OR '1'='1'), a query sempre será executada independentemente do login ou da senha imputados, permitindo que o hacker tenha acesso ao banco de dados ou ao painel de controle que supostamente estariam protegidos com uma senha.

Felizmente, existem alguns procedimentos básicos que protegem os scripts contra injeções SQL. Vamos falar sobre eles.


Artigos similares


Comentários de usuários

Respostas recomendadas

Não há comentários para mostrar.



Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!