Maison >développement back-end >Problème PHP >Comment désactiver les citations magiques en php ? Présentation de la méthode

Comment désactiver les citations magiques en php ? Présentation de la méthode

PHPz
PHPzoriginal
2023-03-24 17:09:451458parcourir

Si vous êtes un développeur PHP, vous pouvez rencontrer un problème appelé "Magic Quotes", qui peut empêcher votre code de fonctionner correctement dans un environnement de production. Magic Quotes est un mécanisme de sécurité conçu pour protéger les applications Web contre les attaques par injection SQL. Cependant, au fil du temps, Magic Quotes s’est avéré dangereux et a été annulé.

Dans cet article, je vais vous montrer comment désactiver Magic Quotes et garder votre code PHP conforme aux dernières sécurités et meilleures pratiques.

Que sont les citations magiques

Dans les premières versions de PHP, les développeurs ont constaté qu'ils devaient extraire les données des formulaires et les insérer dans une base de données. Ce faisant, ils ont découvert qu'il existait un véritable problème de sécurité connu sous le nom d'« injection SQL ». L'injection SQL est une méthode d'attaque très populaire dans laquelle les attaquants soumettent du code malveillant pour compromettre les applications Web. Pour protéger les développeurs contre les attaques par injection SQL, l'équipe de développement PHP a introduit Magic Quotes.

Magic Quotes est une fonctionnalité appliquée automatiquement qui échappe automatiquement aux guillemets ou autres caractères spéciaux dans les données d'entrée pour protéger les développeurs contre les attaques par injection SQL. Par exemple, si un utilisateur tape « O'Reilly » dans une zone de texte, Magic Quotes l'échappera sous la forme « O'Reilly ».

Bien que cela puisse protéger les applications Web, cela peut également créer des problèmes dans certaines situations. Magic Quotes peut modifier vos données, ce qui peut interrompre votre application. Par exemple, si votre application prévoit de stocker des données avec des guillemets dans la base de données, Magic Quotes vous en empêchera. Par conséquent, désactiver Magic Quotes peut être une meilleure option.

Désactivez Magic Quotes

Si vous décidez de désactiver Magic Quotes, tout ce que vous avez à faire est de définir l'option magic_quotes_gpc dans votre fichier php.ini. magic_quotes_gpc est un commutateur qui contrôle le comportement de Magic Quotes. S'il est défini sur "On", PHP effectuera automatiquement les opérations d'échappement de caractères. S'il est défini sur "Off", alors PHP n'échappera pas automatiquement à ces caractères. Voici comment définir l'option magic_quotes_gpc dans le fichier php.ini :

magic_quotes_gpc = Off

Après avoir effectué cette modification, vous devrez redémarrer votre serveur Web. Vous pouvez utiliser la fonction phpinfo() dans votre code PHP pour vérifier si Magic Quotes a été désactivé avec succès. S'il est désactivé avec succès, vous verrez le résultat suivant :

magic_quotes_gpc = Off

Alternatives

Bien que la désactivation de Magic Quotes puisse maintenir votre code PHP conforme aux dernières sécurités et meilleures pratiques, il existe certaines situations dans lesquelles vous devrez peut-être rechercher des alternatives. . Par exemple, si votre application doit protéger les données contre les attaques par injection SQL, vous pouvez utiliser la liaison de données ou des requêtes paramétrées. La liaison de données est une méthode permettant de lier des valeurs de données à des espaces réservés dans les instructions de requête SQL, tandis que les requêtes paramétrées sont une méthode permettant d'utiliser des instructions et des paramètres de requête SQL prédéfinis pour effectuer des opérations de requête.

Conclusion

Magic Quotes était une fonctionnalité qui protégeait les applications Web contre les attaques par injection SQL, mais elle s'est avérée non sécurisée et a été supprimée. Si vous décidez de désactiver Magic Quotes, vous devez définir l'option magic_quotes_gpc dans le fichier php.ini. Vous pouvez également rechercher des alternatives, telles que la liaison de données et les requêtes paramétrées, pour protéger votre application Web. Quelle que soit la méthode que vous choisissez, assurez-vous que votre code PHP adhère aux dernières pratiques de sécurité et aux meilleures pratiques.

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