Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: ICEWM PErsonalizado idesk xmms opera
Por waplinux
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Injeção de SQL
Linux user
mtutucv
08/07/2008
Ao desenvolvermos uma página web com acesso ao banco de dados (BD) utilizamos queries SQL que fazem consultas a BD através de SGBDs como MySQL, Postgree etc. Estas consultas muitas das vezes não são confiáveis, podem ser manipuladas e passar por controles de acesso, podendo até ter acesso ao shell do servidor.
Por: Mario Monteiro
[ Hits: 11008 ]
Conceito: 8.3   3 voto(s)3 voto(s)3 voto(s)3 voto(s)3 voto(s) + quero dar nota ao artigo

Ataques

A técnica que é utilizada com queries SQL é chamada de Injeção SQL, cujo ataque contiste em criar ou alterar comandos SQL introduzidos na página desenvolvida para apresentar dados guardados no banco de dados.

Pode também alterar dados importantes ou ainda executar comandos de sistema perigosos no servidor. Isso é realizado nas caixas de textos colocados na página que espera a entrada de um utilizador para realizar queries no BD. Lá são introduzidas queries adicionais com intensão de atacar as informações do BD.

Para melhor entender o que é injeção SQL, o exemplo seguinte permite ver isso: imaginemos que para validar o acesso ao sistema foi desenvolvido o seguinte script:

<?php
$utilizador = $_POST['util'];
$password = $_POST['pw'];
$sql = "SELECT * FROM utilizador WHERE username='$utilizador' AND password='$password'";
?>

As variáveis $utilizador e $password recebem o conteúdo enviado do formulário através do método POST, é aí que se encontra o perigo. Suponha que a seguinte entrada foi enviada no formulário:
  • util - pode ser enviado campo vazio; é recebido pela variável $utilizador;
  • pw - pode ser enviado o texto ' or 1='1; é recebido pela variável $password.

A query que vai ser executada vai sofrer modificações ficando da seguinte forma:

$sql="SELECT * FROM utilizador WHERE username='' AND password='' or 1='1' ";

Se não for realizada qualquer validação sobre os textos enviados nos formulários para verificar tal situação, qualquer utilizador mal intencionado pode obter acesso ao sistema. Esse é um exemplo muito simples de ataque.

Existem ataques mais complexos, deve haver uma verificação mais consistente dos dados enviados no formulário para o acesso e consultas ao BD.

Próxima página >>




Páginas do artigo
   1. Ataques
   2. Como evitar ataques

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por skywishrfz em 08/07/2008 - 10:29h:

Legal o artigo!

Se não tiver acesso ao php.ini, pode também usar a função

error_reporting(null) pra nao exibir as mensagens de erro!

outra dica é hashar a senha antes de enviar o sql tipo

com md5(), sha1(), ou mesmo o crypt();

flw!!

[2] Comentário enviado por xKuRt em 08/07/2008 - 11:56h:

Ficou bem básico, mas contém algumas noções legais sobre o assunto.

Gostaria de sugerir uma leitura complementar:

Segurança em programação PHP
Parte 1 - http://www.htmlstaff.org/ver.php?id=1356
Parte 2 - http://www.htmlstaff.org/ver.php?id=1357

[3] Comentário enviado por aprendiz_ce em 08/07/2008 - 13:21h:

Apesar de resumido... é nota 10!!! Vale pelo alerta.

Parabéns pelo artigo!



[4] Comentário enviado por guinter em 08/07/2008 - 17:20h:

Ficou bom o artigo apesar de estar bem básico. Abraços!

[5] Comentário enviado por ruhanbidart em 08/07/2008 - 22:07h:

Resumido, simples e básico mas bem legal! Parabéns.

[6] Comentário enviado por mtavares em 15/07/2008 - 18:39h:

Realmente é básico, pois há muitas outras técnicas e especificidades. Para já um tema interessante visto que muitos de nós que programamos ou não temos conhecimento acerca ou não preocupamos até alguém invadir e aí é feio. Parabéns pelo artigo.
Vou esperar pela "2ª parte".

[7] Comentário enviado por carlosdias98 em 07/09/2008 - 01:20h:

ótimo artigo

[8] Comentário enviado por Dieh em 03/11/2011 - 10:47h:

Artigo simples, prático e bom.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.