Maison  >  Article  >  base de données  >  Pourquoi ESAPI échappe-t-il aux caractères de retour arrière (\\b) et de tabulation (\\t) dans la prévention des injections SQL ?

Pourquoi ESAPI échappe-t-il aux caractères de retour arrière (\\b) et de tabulation (\\t) dans la prévention des injections SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-28 17:16:29675parcourir

 Why Does ESAPI Escape Backspace (\b) and Tabulator (\t) Characters in SQL Injection Prevention?

Prévention des injections SQL : échappement de caractères pour une sécurité maximale

La prévention des injections SQL est cruciale pour protéger les bases de données contre les attaques malveillantes. Lors de l'utilisation de la fonction mysql_real_escape_string(), les caractères , n, r, \, ', " et Z sont échappés pour empêcher les tentatives d'injection.

Cependant, la bibliothèque de sécurité ESAPI d'OWASP.org inclut des caractères supplémentaires pour l'échappement, y compris b (retour arrière) et t (tabulation). La question se pose : pourquoi ces caractères sont-ils inclus et sont-ils vraiment nécessaires ?

Caractères de tabulation et de retour arrière dans la prévention des évasions

L'inclusion des caractères b et t dans le mécanisme d'échappement ESAPI est probablement liée à la possibilité de tentatives d'injection utilisant ces caractères. Considérons le scénario suivant :

Un attaquant envoie un e-mail contenant un fichier texte en pièce jointe avec ce qui suit. requête :

INSERT INTO students VALUES ("Bobby Tables",12,"abc",3.6);
Cela semble être une requête inoffensive. Cependant, l'attaquant a intelligemment placé des caractères de retour arrière avant la requête, comme suit :

DROP TABLE students;\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b
Lorsque le destinataire traite le fichier. et le redirige vers MySQL, les caractères de retour arrière écrasent la requête inoffensive, ce qui entraîne les étudiants malveillants DROP TABLE ; La commande est exécutée à l'insu du destinataire.

De plus, les caractères de tabulation (t) pourraient potentiellement être utilisés pour aligner du code malveillant dans la requête, améliorant ainsi sa lisibilité et le rendant plus difficile à détecter. Par conséquent, échapper à ces caractères offre une couche de protection supplémentaire contre d’éventuelles tentatives d’injection.

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!

Déclaration:
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