Maison > base de données > tutoriel mysql > `mysql_real_escape_string()` est-il une défense fiable contre l'injection SQL dans tous les encodages de caractères ?

`mysql_real_escape_string()` est-il une défense fiable contre l'injection SQL dans tous les encodages de caractères ?

Mary-Kate Olsen
Libérer: 2024-12-01 03:21:17
original
168 Les gens l'ont consulté

Is `mysql_real_escape_string()` a Reliable Defense Against SQL Injection in All Character Encodings?

Mysql_real_escape_string() est-il un bouclier imprenable contre l'injection SQL ?

Une section sur justinshattuck.com suggère que mysql_real_escape_string() est faillible contre certains Encodages de caractères asiatiques. Plus précisément, il prétend que l'encodage contourne mysql_real_escape_string() en utilisant BIG5 ou GBK pour introduire clandestinement des caractères dangereux dans les requêtes.

Cette vulnérabilité est-elle réelle ?

Selon Stefan Esser, la réponse est un oui déconcertant. Il affirme que mysql_real_escape_string() échoue lorsque SET NAMES est utilisé. Cette méthode change l'encodage pour s'adapter aux besoins de l'application sans en informer mysql_real_escape_string(). Par conséquent, si un codage multi-octets autorise une barre oblique inverse comme deuxième, troisième ou quatrième octet, des problèmes s'ensuivent. Mysql_real_escape_string() reste inconscient de cette irrégularité et ne parvient pas à échapper correctement les caractères.

Protéger votre site Web

Esser suggère que UTF-8 reste un encodage sûr, mais UTF -8 n'est pas toujours une option. Malheureusement, mysql_set_charset, l'alternative la plus sûre, n'est disponible que dans les versions récentes de PHP.

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