Maison > développement back-end > tutoriel php > Quand eval n'est-il PAS mauvais en PHP ?

Quand eval n'est-il PAS mauvais en PHP ?

Linda Hamilton
Libérer: 2024-11-06 13:32:02
original
951 Les gens l'ont consulté

When is eval NOT Evil in PHP?

Quand (le cas échéant) eval n'est-il PAS mauvais ?

Malgré la perception largement répandue de la fonction eval de PHP en dernier recours, elle peut toujours avoir une certaine valeur dans certains scénarios. À la lumière du LSB et des fermetures de PHP 5.3, nous explorons s'il existe des cas concevables où eval reste la meilleure ou la seule option.

Réponse :

Pendant eval devrait généralement être évité, cela peut être justifié dans les scénarios suivants :

  • Évaluation d'expressions numériques : L'exécution de calculs numériques ou d'autres sous-ensembles "sûrs" de PHP peut parfois bénéficier de l'évaluation.
  • Tests unitaires : Création de cas de test avec des exigences spécialisées qui ne peuvent pas être facilement satisfaites par des méthodes de test standard.
  • "Shell" PHP interactif : Construction une interface de ligne de commande qui accepte et exécute des extraits de code fournis par l'utilisateur.
  • Désérialisation de Trusted var_export : Récupération de structures de données à partir de chaînes sérialisées obtenues à partir de sources fiables.
  • Langages de modèles : Utilisation d'eval dans des moteurs de modèles personnalisés pour générer et exécuter dynamiquement des fragments de code.
  • Création de portes dérobées : Malheureusement, eval peut être utilisé par des acteurs malveillants pour établir des portes dérobées pour accès non autorisé.
  • Compatibilité avec PHP <5.3 : Pour les projets ciblant des versions PHP plus anciennes, une évaluation peut être nécessaire pour compenser l'absence de fonctionnalités plus récentes.
  • Vérification de la syntaxe (potentiellement dangereuse) : Bien qu'il ne soit pas entièrement sûr, eval peut être utilisé pour examiner la syntaxe du code fourni.

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