Os ataques de injeção de SQL ocorrem quando entrada do usuário está codificado incorretamente. Normalmente, a entrada do usuário são alguns dados que o usuário envia com sua consulta, ou seja, valores no arquivo
$_GET
, $_POST
, $_COOKIE
, $_REQUEST
, ou $_SERVER
matrizes. No entanto, a entrada do usuário também pode vir de uma variedade de outras fontes, como soquetes, sites remotos, arquivos, etc. Portanto, você deve tratar tudo menos constantes (como 'foobar'
) como entrada do usuário . No código que você postou,
mysql_real_escape_string
é usado para codificar (=escape) entradas do usuário. O código está, portanto, correto, ou seja, não permite nenhum ataque de injeção de SQL. Observe que é muito fácil esquecer a chamada para
mysql_real_escape_string
- e uma vez é suficiente para um atacante habilidoso! Portanto, você pode querer usar o moderno PDO
com declarações preparadas
em vez de adodb.