Mysql
 sql >> Base de données >  >> RDS >> Mysql

Injections SQL dans ADOdb et sécurité générale du site Web

Les attaques par injection SQL se produisent lorsque l'entrée de l'utilisateur est mal encodé. En règle générale, l'entrée de l'utilisateur correspond à des données que l'utilisateur envoie avec sa requête, c'est-à-dire des valeurs dans le $_GET , $_POST , $_COOKIE , $_REQUEST , ou $_SERVER tableaux. Cependant, les entrées de l'utilisateur peuvent également provenir de diverses autres sources, telles que des sockets, des sites Web distants, des fichiers, etc. Par conséquent, vous devez vraiment traiter tout sauf les constantes (comme 'foobar' ) en tant qu'entrée utilisateur .

Dans le code que vous avez posté, mysql_real_escape_string est utilisé pour encoder (=échapper) les entrées de l'utilisateur. Le code est donc correct, c'est-à-dire qu'il ne permet aucune attaque par injection SQL.

Notez qu'il est très facile d'oublier l'appel à mysql_real_escape_string - et une seule fois suffit pour un attaquant habile ! Par conséquent, vous pouvez utiliser le moderne PDO avec instructions préparées au lieu d'adodb.