Los ataques de inyección SQL ocurren cuando la entrada del usuario está mal codificado. Por lo general, la entrada del usuario son algunos datos que el usuario envía con su consulta, es decir, valores en el $_GET
, $_POST
, $_COOKIE
, $_REQUEST
o $_SERVER
arreglos Sin embargo, la entrada del usuario también puede provenir de una variedad de otras fuentes, como sockets, sitios web remotos, archivos, etc. Por lo tanto, realmente debe tratar todo menos las constantes. (como 'foobar'
) como entrada del usuario .
En el código que publicaste, mysql_real_escape_string
se utiliza para codificar (=escapar) las entradas del usuario. Por lo tanto, el código es correcto, es decir, no permite ningún ataque de inyección SQL.
Tenga en cuenta que es muy fácil olvidar la llamada a mysql_real_escape_string
¡Y una vez es suficiente para un atacante hábil! Por lo tanto, es posible que desee utilizar el moderno PDO
con declaraciones preparadas
en lugar de adob.