Pular para conteúdo

SQL Injection

SQL é uma lingaugem declarativa de manipulação de banco de dados, muito utilizada por sistemas gerenciadores de bancos de dados (SGBDs). Normalmente SGBDs recebem comandos SQL através de puro texto e isso é perigoso, porque se o programador de um website ou aplicativo com bancos de dados não tratar os inputs do ususário, é possível que os usuários tenham contato direto com consultas em seu SGBD.

Por exemplo, um campo de login precisa ser passado para um SGBD a fim de ter acesso à base de usuários e autenticar o usuário. Pense que o programador usou a seguinte estrutura de comando:

SGBD.new_query("
    SELECT name, password
    FROM USERS
    WHERE name='" + login_field.name + "'
    AND password='"+ login_field.password +"';
");