Wann (wenn überhaupt) ist eval NICHT böse?
Trotz der weit verbreiteten Wahrnehmung, dass die eval-Funktion von PHP nur der letzte Ausweg ist, kann es immer noch so sein in bestimmten Szenarien einen gewissen Wert haben. Angesichts des LSB und der Schließungen von PHP 5.3 untersuchen wir, ob es denkbare Fälle gibt, in denen eval die beste oder einzige Option bleibt.
Antwort:
Während eval sollte generell vermieden werden, könnte in den folgenden Szenarien gerechtfertigt sein:
-
Auswerten numerischer Ausdrücke: Das Ausführen numerischer Berechnungen oder anderer „sicherer“ Teilmengen von PHP kann manchmal von eval profitieren.
-
Unit-Tests: Erstellen von Testfällen mit speziellen Anforderungen, die mit Standardtestmethoden nicht einfach erfüllt werden können.
-
Interaktive PHP-„Shell“: Erstellen eine Befehlszeilenschnittstelle, die vom Benutzer bereitgestellte Codefragmente akzeptiert und ausführt.
-
Deserialisierung von vertrauenswürdigem var_export: Wiederherstellen von Datenstrukturen aus serialisierten Zeichenfolgen, die von vertrauenswürdigen Quellen stammen.
-
Vorlagensprachen:Verwendung von eval in benutzerdefinierten Template-Engines, um Codefragmente dynamisch zu generieren und auszuführen.
-
Erstellen von Hintertüren:Bedauerlicherweise kann eval von böswilligen Akteuren zum Einrichten von Hintertüren eingesetzt werden unbefugter Zugriff.
-
Kompatibilität mit PHP <5.3: Bei Projekten, die auf ältere PHP-Versionen abzielen, kann eine Evaluierung erforderlich sein, um das Fehlen neuerer Funktionen auszugleichen.
-
Syntaxprüfung (potenziell unsicher): Obwohl nicht ganz sicher, kann eval verwendet werden, um die Syntax des bereitgestellten Codes zu überprüfen.
Das obige ist der detaillierte Inhalt vonWann ist eval in PHP NICHT böse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!