Maison > Article > base de données > Pourquoi les caractères de retour arrière et de tabulation doivent-ils être échappés dans les requêtes MySQL ?
Injections MySQL et échappement de caractères
Lors de l'utilisation de la fonction mysql_real_escape_string() de l'API MySQL, il est essentiel de s'assurer que tous les caractères vulnérables sont échappés pour empêcher les injections SQL. La documentation MySQL indique que les caractères suivants doivent être échappés :
<pre class="brush:php;toolbar:false">0x00 : "\0", 0x08 : "\b", 0x09 : "\t", 0x1a : "\Z", 0x22 : '\"', 0x25 : "\%", 0x27 : "\'", 0x5c : "\\", 0x5f : "\_",\n \r \ ' " \Z
Cependant, en comparant cette liste avec le port Python de l'ESAPI, des caractères supplémentaires sont identifiés pour l'échappement, notamment :
SELECT a FROM b WHERE c = '...user input ...';
La préoccupation se pose concernant la nécessité d'échapper aux caractères de retour arrière (b) et de tabulation (t).
Réponse à la requête
"\bDELETE_MY_DATABASE"
Lorsque l'entrée utilisateur contient des tabulateurs ou un retour arrière caractères, cela pourrait présenter des risques pour la sécurité. Prenons un scénario dans lequel un acteur malveillant inclut ce qui suit à la fin de l'entrée de l'utilisateur :
Lorsqu'il est transmis à la base de données, le caractère d'espacement arrière effacera le guillemet simple précédent, conduisant à l'exécution du DELETE malveillant. requête.
Bibliothèque de sécurité ESAPI
La bibliothèque de sécurité ESAPI intègre des caractères de retour arrière et de tabulation pour s'échapper en raison de problèmes de sécurité potentiels :
Conclusion
Par conséquent, il est recommandé de faire preuve de prudence et d'échapper à tous les caractères spécifiés dans la bibliothèque de sécurité de l'ESAPI lors du traitement des entrées utilisateur dans les requêtes MySQL. Bien que des caractères spécifiques tels que le retour arrière et la tabulation ne semblent pas intrinsèquement dangereux, leur impact, associé à d'autres mécanismes, peut constituer des menaces de sécurité importantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!