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 :
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 :
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!