Maison > base de données > tutoriel mysql > Quel est le meilleur pour la désinfection des bases de données MySQL : addlashes ou mysql_real_escape_string ?

Quel est le meilleur pour la désinfection des bases de données MySQL : addlashes ou mysql_real_escape_string ?

Susan Sarandon
Libérer: 2024-11-15 13:37:02
original
589 Les gens l'ont consulté

Which is Better for MySQL Database Sanitization: addslashes or mysql_real_escape_string?

Comparaison de mysql_real_escape_string et addlashes pour la désinfection des bases de données

En PHP, addlashes et mysql_real_escape_string sont deux fonctions couramment utilisées pour nettoyer les données avant de les soumettre à un base de données pour éviter les vulnérabilités d’injection SQL. Bien que les deux fonctions visent à échapper aux caractères spéciaux dans les données, elles diffèrent par les caractères spécifiques auxquels elles échappent et leur utilisation prévue.

Comparaison des fonctionnalités

les addslash échappent principalement aux éléments suivants caractères :

  • Guillemet simple (')
  • Guillemet double (")
  • Barre oblique inverse ()
  • Caractère nul (octet NULL)

D'un autre côté, mysql_real_escape_string échappe non seulement aux caractères couverts par des barres obliques ajoutées, mais échappe également aux éléments suivants :

  • Saut de ligne (LF)
  • Retour chariot ( CR)
  • Control-Z (EOF)

Signification des caractères d'échappement supplémentaires dans mysql_real_escape_string

Les caractères supplémentaires échappés par mysql_real_escape_string sont significatifs car ils peuvent provoquer des problèmes lors de l'exécution de requêtes SQL. Par exemple, les sauts de ligne et les retours chariot peuvent casser la structure de la requête, entraînant un comportement inattendu qui peut déclencher la fin prématurée du flux d'entrée, provoquant une troncature des données ou des erreurs.

Utilisation prévue

mysql_real_escape_string est conçu spécifiquement pour échapper des données avant de les soumettre aux bases de données MySQL. Il prend en compte les exigences d'échappement de MySQL et garantit que les données sont correctement formatées pour l'insertion ou la manipulation dans les requêtes MySQL.

addslashes, en revanche, est une fonction plus générale qui échappe aux caractères couramment utilisés. dans divers contextes, notamment HTML et JavaScript. Bien qu'il puisse être utilisé pour la désinfection de la base de données, cela peut ne pas être suffisant si la base de données utilisée a des exigences d'échappement spécifiques qui ne sont pas couvertes par les addlashes.

Conclusion

Quand concernant les bases de données MySQL, il est recommandé d'utiliser mysql_real_escape_string plutôt que les addlashes pour la désinfection des données. mysql_real_escape_string fournit un niveau d'échappement plus complet qui répond aux exigences spécifiques de MySQL, garantissant la sécurité et l'intégrité de vos données.

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