Maison > base de données > tutoriel mysql > mysql_real_escape_string() offre-t-il une protection complète contre les attaques par injection SQL ?

mysql_real_escape_string() offre-t-il une protection complète contre les attaques par injection SQL ?

DDD
Libérer: 2024-11-27 11:46:10
original
204 Les gens l'ont consulté

Does mysql_real_escape_string() Offer Complete Protection Against SQL Injection Attacks?

Mysql_real_escape_string() peut-il parfaitement empêcher les attaques par injection SQL ?

Des inquiétudes ont été soulevées concernant l'efficacité de mysql_real_escape_string() contre l'injection SQL lorsque vous travaillez avec certains encodages de caractères asiatiques.

The Bypass Problème

Selon les sources, mysql_real_escape_string() peut être vulnérable au contournement à l'aide des encodages de caractères Big5 ou GBK. Ces encodages permettent aux barres obliques inverses d'apparaître sous forme de deuxième, troisième ou quatrième octets, ce qui peut perturber le processus d'échappement.

Stratégies d'atténuation

Bien que mysql_real_escape_string() puisse ne pas être totalement fiable dans tous les cas, il existe des mesures alternatives pour empêcher SQL injection :

  • Instructions préparées : Les instructions préparées paramètrent les requêtes et gèrent automatiquement la vérification des entrées.
  • mysql_set_charset : Comme mentionné par Stefan Esser, il s'agit d'un moyen plus récent et plus sécurisé de modifier le codage des caractères que SET NOMS.

En l'absence de déclarations préparées

Si les déclarations préparées ne sont pas une option, considérez ce qui suit :

  • Encodage UTF-8 : Esser garantit que l'UTF-8 peut être utilisé en toute sécurité avec mysql_real_escape_string().
  • Filtrage des entrées : Utilisez des expressions régulières ou d'autres techniques pour filtrer les caractères potentiellement malveillants avant d'effectuer des requêtes.

Conclusion

Bien que mysql_real_escape_string() ne soit pas entièrement inviolable, il reste un outil précieux pour empêcher l’injection SQL. En mettant en œuvre des stratégies d'atténuation supplémentaires, telles que l'encodage UTF-8 ou le filtrage des entrées, vous pouvez réduire considérablement le risque d'attaques malveillantes.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal