SQL Injection
SEGURANÇA DA INFORMAÇÃO
Structured Query Language (SQL) injection
Injeção de SQL.
Injeção de SQL é uma das vulnerabilidades mais devastadoras que pode impactar em uma organização, uma vez que pode levar à exposição todas as informações armazenadas em uma base de dados lidas a um aplicativo.
Uma injeção SQL pode comprometer usernames, senhas, endereços, números de telefone, e até informações de cartões de crédito.
A vulnerabilidade ocorre quando um usuário ganha habilidades de influenciar consultas SQL em uma aplicação. Ao ser capaz de influenciar o que é passado para um banco de dados , o usuário atacante pode utilizar a sintaxe e os recursos do próprio SQL, bem como o poder e a flexibilidade de suporte a funcionalidade do banco de dados e a funcionalidade do sistema que opera o banco de dados.
Embora ataques de injeção SQL são baseados na web, existem alguns ataques que dependem da execução de procedimentos armazenados e funções de uma base de dados. Em geral, qualquer código que aceita entrada de uma fonte não confiável e em seguida usa essas entradas para formar instruções SQL dinâmicas vai ser vulnerável a injeções SQL.
Hackers varrem a internet em busca dessas vulnerabilidades de código para fazerem um SQL Injection, infelizmente eles não precisam buscar tanto assim, as vulnerabilidades pulam na sua cara. É um tipo de vulnerabilidade em que o risco para inserção é mínimo e as recompensas são gigantes, exatamente o que qualquer hacker quer.
A boa notícia é que, felizmente, SQL injection são relativamente fáceis de evitar.
Basicamente existem duas maneiras de se evitar a todo custo um SQL injection:
1. Não use consultas de banco de dados dinâmicas
2. Não aceitar dados vindos dos usuários em suas consultas
No entanto, se seguirmos a risca esses dois passos, nossos sites serão praticamente páginas estáticas, sem nenhuma interatividade com os usuários, o que hoje na internet seria um