Fala galera, tudo tranquilo?!
Um tema muito bacana e recorrente no desenvolvimento web é SQL Injection e neste post irei abordar algumas boas práticas na defesa contra esses ataques.
Teremos 3 posts relacionados ao tema, sendo:
- Introdução ao SQL Injection.
- Filtragem e validação de dados.
- Comunicação com o banco de dados.
O que é SQL Injection?
É um tipo de ameaça relacionado a segurança, que se aproveita de falhas em sistemas que interagem com bases de dados para inserir trechos de código SQL para realizar ações não desejadas e para manipular, roubar ou danificar a estrutura ou dados contidos no banco de dados.
Quais são os tipos mais comuns de SQL Injection?
- Poorly Filtered Strings
- Relacionado a passagem de parâmetros (dados) não filtratos e passados de forma direta para a consulta SQL.
- Incorrect type handling
- Ocorre quando o tipo do parâmetro informado não é validado e passado de forma direta para a consulta SQL.
- Signature Evasion
- Quando ocorre o escape da assinatura de sistema para detecção de SQL Insection como por exemplo o “mod_security” do Apache.
- Filter Bypassing
- Em determinadas condições filtros como “addslashes” e “magic_quotes_gpc” podem ser ignorados quando o servidor SQL vulnerável está usando conjuntos de caracteres, como o conjunto de caracteres “GBK”.
- Blind SQL Injection
- São pequenas mudanças perceptíveis no sistema resultante da injeção SQL.
Quais os problemas que isso pode me causar?
- Perda parcial ou total dos dados do sistema.
- Sequestro de dados sigilosos.
- Alteração e/ou manipulação direta dos dados.
Como vimos neste post por mais comum que seja o tema, devemos sempre estar atento no processo de desenvolvimento de sistemas para que boas práticas sejam empregadas e assim deixarmos cada vez mais seguras e confiáveis para o usuário.
No próximo post “Defesa eficaz contra SQL Injection – Filtragem e validação dos dados” vamos abordar técnicas básicas e avançadas para o tratamento de dados da nossa aplicação.
Espero que tenham apreciado 🙂