L'injection SQL qui permet de contourner le mysql_real_escape_string()

Est-il une injection SQL possibilité même lors de l'utilisation de mysql_real_escape_string() fonction?

Considérer cet exemple de situation. SQL est construit en PHP comme ceci:

$login = mysql_real_escape_string(GetFromPost('login'));
$password = mysql_real_escape_string(GetFromPost('password'));

$sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";

J'ai entendu de nombreuses personnes me disent qu'un code comme celui qui est toujours dangereux et possible de hack, même avec mysql_real_escape_string() la fonction utilisée. Mais je ne peux pas penser à un possible exploit?

Classique injections comme ceci:

aaa' OR 1=1 --

ne fonctionnent pas.

Connaissez-vous d'injection qui pourraient obtenir par le code PHP ci-dessus?

Je préfère ne pas donner détaillé des erreurs de ce type d'utilisateur non valide / non valide mot de passe... il dit que la force brute des marchands qu'ils ont un ID utilisateur valide, et c'est juste le mot de passe qu'ils ont besoin de deviner
C'est horrible à partir d'une convivialité point de vue. Parfois, vous ne pouvez pas utiliser votre principale pseudo/nom d'utilisateur/adresse e-mail et d'oublier ce après un certain temps ou le site a supprimé votre compte pour inactivité. Ensuite, c'est extrêmement gênant si vous continuez d'essayer les mots de passe et peut-être même obtenir votre adresse IP bloqué même si c'est juste votre nom d'utilisateur n'est pas valide.
s'il vous Plaît, n'utilisez pas mysql_* fonctions dans le nouveau code. Il n'est plus maintenu et la la dépréciation du processus a commencé. Voir le boîte rouge? En savoir sur le préparées au lieu de cela, et d'utiliser les PDO ou MySQLi - cet article vous aider à décider lequel. Si vous choisissez AOP, voici un bon tutoriel.
depuis 5.5 (qui a été publié récemment) le mysql_* fonctions produisent déjà E_DEPRECATED avertissement. Le ext/mysql extension n'a pas été maintenu pendant plus de 10 ans. Êtes-vous vraiment si délirant?
Ils ont juste enlevé cette extension sur PHP 7.0 et il n'est pas 2050 encore.

OriginalL'auteur Richard Knop | 2011-04-21