O que é um SQL Injection Attack / Vulnerabilidade?
Este FAQ resposta foi escrito por k4thryn:
A injeção SQL vulnerabilidade pode ocorrer quando um mal-escrito programa usa os dados fornecidos por usuários em um banco de dados consulta sem primeiro validar a entrada. Esta é mais freqüentemente encontrados dentro de páginas web com conteúdo dinâmico. Há alguns excelentes tutoriais e descritivo artigos sobre este assunto, bem como muitas vulnerabilidades lançamentos para diferentes aplicações de full-divulgação websites.
Um exemplo simples injeção de SQL é um formulário de login em HTML básico, que você forneça um nome de usuário e senha:
<form method="post" action="process_login.php"> <input type="text" name="username"> <input type="password" name="password"> </ form>
Dado este snippet do HTML, um pode deduzir que o mais fácil (e piores) caminho para o script "process_login.php" para trabalhar para ele seria para construir e executar uma consulta de dados que se parece com esta:
"SELECT id FROM logins ONDE username = '$ username' e senha = '$ senha' ";
Nestas circunstâncias, se as variáveis "$ username" e "$ senha" são tomadas directamente a partir da entrada do usuário, o login script pode ser facilmente induzido a pensar que uma senha válida tenha sido fornecida por brincar com a sintaxe do SQL. Suponha a seguinte seqüência foram fornecidos como a senha:
'Ou''='
e demos "Bob", como nome do usuário. Uma vez que as variáveis são interpoladas, a consulta acima ficaria assim:
"SELECT id FROM logins ONDE username = 'bob' e senha =''ou''='' ";
Esta consulta irá devolver uma linha, porque a cláusula final:
... =''ou''
será sempre avaliar a verdade (uma string vazia é sempre igual a uma string vazia).
Prevenir SQL Injection Attacks
Os métodos mais comuns para prevenir este tipo de injeção SQL vunerability são para verificar a entrada do usuário para a perigosa caracteres como um único aspas e usar declarações preparadas, o que dizer a base de dados exatamente o que esperar antes de qualquer utilizador, desde os dados são passados para ela.
|






