Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi les caractères de retour arrière et de tabulation doivent-ils être échappés dans les requêtes MySQL ?

Mary-Kate Olsen
Libérer: 2024-10-27 22:11:02
original
990 Les gens l'ont consulté

  Why Should Backspace and Tab Characters Be Escaped in MySQL Queries?

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 : "\_",
Copier après la connexion
\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 ...';
Copier après la connexion

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"
Copier après la connexion

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 :

  • Tabulator (t) : Les caractères de tabulation dans une chaîne peuvent perturber le comportement attendu de la base de données, permettant potentiellement aux attaquants de manipuler des données ou d'injecter des requêtes malveillantes.
  • Retour arrière (b) : Comme le montre l'exemple du fichier catting, les caractères de retour arrière peuvent écraser les caractères saisis précédemment, ce qui permet d'ajouter du code malveillant au début d'une requête sans être visiblement présent.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!