Maison  >  Article  >  développement back-end  >  Voici quelques options de titre, en gardant à l’esprit le format questions-réponses et en mettant en évidence le problème principal : Option 1 (Directe et Spécifique) : * Mysql_real_escape_string() peut-il se protéger contre les injections SQL

Voici quelques options de titre, en gardant à l’esprit le format questions-réponses et en mettant en évidence le problème principal : Option 1 (Directe et Spécifique) : * Mysql_real_escape_string() peut-il se protéger contre les injections SQL

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 13:51:02371parcourir

Here are a few title options, keeping in mind the question-and-answer format and highlighting the core issue:

Option 1 (Direct and Specific):

* Can mysql_real_escape_string() Protect Against SQL Injection with Asian Character Encodings?

Option 2 (More

Vulnérabilités d'injection MySQL avec mysql_real_escape_string()

Malgré son utilisation généralisée, mysql_real_escape_string() peut ne pas protéger entièrement contre les attaques par injection SQL dans des circonstances spécifiques.

Encodages de caractères asiatiques

Selon JustinShattuck.com, certains encodages de caractères asiatiques peuvent contourner mysql_real_escape_string(), comme le démontre l'exemple utilisant les caractères chinois Big5. Cette vulnérabilité survient lorsque :

  • mysql_real_escape_string() est utilisé.
  • SET NAMES est utilisé pour basculer le codage de caractères par défaut vers un codage multi-octets.
  • Le multi-octet choisi l'encodage autorise les barres obliques inverses ("") comme deuxième, troisième ou octets suivants.

Impact et atténuation

Comme l'explique Stefan Esser, cette vulnérabilité se produit car mysql_real_escape_string() ne prend pas en compte les changements d'encodage provoqués par SET NAMES. Pour résoudre ce problème :

  • Préférez les instructions préparées : Les instructions préparées gèrent correctement le codage des caractères et sont généralement plus sécurisées.
  • Utilisez mysql_set_charset (si disponible ): Cette fonction plus récente permet des modifications d'encodage sécurisées sans la vulnérabilité présente dans mysql_real_escape_string().
  • Limiter les options d'encodage de caractères : Restreindre les encodages de caractères qui peuvent être utilisés par votre application à prévenir les vulnérabilités.
  • Soyez prudent avec UTF-8 : Bien que UTF-8 soit généralement sûr, les utilisateurs malveillants peuvent tenter d'exploiter les cas extrêmes et doivent être surveillés.

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