José Geraldo de Moraes


20/06/2008


SQL Injection

O artigo descreve a técnica SQL Injection, que explora vulnerabilidades em aplicações Web desenvolvidas sem segurança, e mostra técnicas de segurança para proteção desta vulnerabilidade.

SQL Injection uma vulnerabilidade que envolve os Banco de Dados relacionais, onde os hackers injetam comandos SQL não autorizados, induzindo outra consulta ao Banco. Esta vulnerabilidade ocorre por falha do desenvolvedor que utiliza qualquer linguagem Server-side (PHP, Coldfusion, ASP, etc.), onde o programador cria códigos de acesso ao Banco de Dados sem se importar com eventuais explorações. Uma das formas de se evitar é que sempre sejam validados os dados enviados pelo usuário.

O artigo, escrito por Kevin Spett, relata as seguintes técnicas de SQL Injection :

Bypass de autorização

Uso do comando Select

Uso do comando Inset

Uso de store procedure no SQL Server

 

O autor recomenda duas soluções contra ataques de SQL Injection :

Data Sanitization : Os dados fornecidos pelo cliente devem estar limpos de caracteres especiais ou strings que possam ser utilizadas de maneira maliciosa, sendo que deve ser feito por todas as aplicações, e não apenas por aquelas que usam queries SQL.

Códigos seguros SQL para aplicações WEB :  Existem algumas pequenas regras específicas para SQL Injection. Em primeiro lucar, limite o tamanho das entradas dos usuários, até mesmo para os dados numéricos. Em seguida, limite os direitos de acesso do usuário ao Banco de Dados. Não permita que o usuário tenha direito de acesso a todas as store procedures do sistema se o usuário tem necessidade de partes dos dados do sistema.

 

Conclusão

 

Pensar desenvolvimento de sistemas seguros deve fazer parte da rotina de programação. As possibilidades  de ataque e roubo de informações através da técnica de SQL Injection são várias e os desenvolvedores, na maioria das vezes não conhecem este tipo de vulnerabilidade.

Escrito por José Geraldo às 17h15
[ ] [ envie esta mensagem ] [ ]



Histórico