Maison >développement back-end >Problème PHP >Quelles sont les fonctions d'échappement php mysql ?
Les fonctions d'échappement mysql incluent : 1. la fonction addlashes ; 2. la fonction htmlspecialchars ; 3. la fonction htmlentities ; 4. la fonction mysql_real_escape_string, etc.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3
php Quelles sont les fonctions d'échappement mysql Lors de l'utilisation de l'outil, lors de la soumission d'une instruction SQL POST pour interroger des données ? dans le backend, une erreur de syntaxe est signalée lorsque le backend reçoit l'instruction sql avec d163a15e8505f97c9b095960ad0ad278.
Mais il n'y a aucun problème si j'imprime la déclaration soumise. Pensez-y, il doit s'agir d'un problème d'encodage ou d'échappement.$sqlQuery = html_entity_decode($_POST["content"]); $sqlQuery = stripslashes($sqlQuery);[object Object]Ce qui suit présente principalement les fonctions d'échappement et les fonctions de sécurité couramment utilisées en PHP. L'utilisation de ces fonctions peut filtrer les méthodes d'attaque les plus courantes, telles que l'injection SQL. Les amis dans le besoin peuvent s'y référer1. les caractères spéciaux entre , y compris ('), ("), (), (NUL) quatre caractères. Cette fonction est utilisée lorsque le SGBD n'a pas sa propre fonction d'échappement, mais si le SGBD a sa propre fonction d'échappement, alors il Il est recommandé d'utiliser la fonction d'origine. Par exemple, MySQL a la fonction mysql_real_escape_string pour échapper à SQL. Notez qu'avant PHP5.3, magic_quotes_gpc est activé par défaut et effectue principalement des opérations d'ajout de barres obliques sur $GET, $POST et $COOKIE, ce n'est donc pas le cas. Vous devez appeler addlashes à plusieurs reprises sur ces variables, sinon un double échappement se produira. Cependant, magic_quotes_gpc est obsolète dans PHP5.3 et a été supprimé depuis PHP5.4. n'avez pas à vous soucier de ce problème. C'est la fonction de déséchappement de addlashes. 2. htmlspecialchars htmlspecialchars échappe plusieurs caractères spéciaux en HTML dans l'entité HTML (format : &xxxx;), y compris (&), ('), ( "), (). personnage.
& (AND) => & ” (双引号) => " (当ENT_NOQUOTES没有设置的时候) ‘ (单引号) => ' (当ENT_QUOTES设置) < (小于号) => < > (大于号) => >htmlspecialchars peuvent être utilisés pour filtrer les données $GET, $POST, $COOKIE afin d'empêcher XSS. Notez que la fonction htmlspecialchars n'échappe qu'aux caractères HTML considérés comme présentant des risques de sécurité. Si vous souhaitez échapper tous les caractères qui peuvent être échappés en HTML, veuillez utiliser htmlentities. htmlspecialchars_decode est la fonction de décodage de htmlspecialchars. 3. htmlentitieshtmlentities échappe au contenu évitable en HTML dans les entités HTML. html_entity_decode est la fonction de décodage des htmlentities. 4. mysql_real_escape_stringmysql_real_escape_string appellera la fonction de la bibliothèque MySQL mysql_real_escape_string pour échapper (x00), (n), (r), (), ('), (x1a), c'est-à-dire ajouter une barre oblique inverse devant () pour empêcher l'injection SQL. Notez que vous n'avez pas besoin d'appeler des barres obliques inverses pour annuler l'échappement lors de la lecture des données de la base de données, car ces barres obliques inverses sont ajoutées lorsque la base de données exécute SQL, et les barres obliques inverses seront supprimées lorsque les données sont écrites dans la base de données, donc le contenu écrit dans la base de données sont les données d'origine, et il n'y aura pas de barre oblique inverse devant. 5. strip_tagsstrip_tags filtrera les balises NUL, HTML et PHP. La fonction 6.stripslashes() supprime les barres obliques inverses ajoutées par la fonction addlashes(). 7. Conclusion La fonction de sécurité intégrée de PHP ne peut pas complètement éviter XSS. Il est recommandé d'utiliser HTML PurifierApprentissage recommandé : "
Tutoriel vidéo 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!