* eval() und create_function()
* 1. eval()
* 1. Die Funktion eval() berechnet den String gemäß dem PHP-Code
* 2. Die Zeichenfolge muss legaler PHP-Code sein und mit einem Semikolon enden
* 3. Wenn die Return-Anweisung nicht in der Codezeichenfolge aufgerufen wird, NULL
* 4 .Wenn vorhanden Liegt ein Analysefehler im Code vor, gibt die Funktion eval() false
* 5 zurück. Diese Funktion ist nützlich, um Code in einem Datenbanktextfeld für spätere Berechnungen zu speichern
* 2 , create_function( 'parameter','function body code'): Erstellen Sie eine anonyme Funktion
//Die Funktionen der folgenden beiden Anweisungen sind genau gleich
eval('echo 4+5;'); //输出9 echo eval('return 4+5;'); //返回9并显示在屏幕上
//Obwohl die Funktionen der beiden oben genannten Anweisungen sind gleich, der Rückgabewert ist nicht derselbe
//Wenn Sie sich also auf den Rückgabewert von eval() beziehen möchten, müssen Sie return
var_dump(eval('echo 4+5;')); //返回 NULL var_dump(eval('return 4+5;')); //返回 9
//eval() verwenden Demonstration des Injektionsangriffs
isset($_GET['p']) ? eval($_GET['p']) : null;
//Fügen Sie nun ?p=phpinfo(); oder andere legale PHP-Anweisungen nach der URL hinzu, es wird direkt ausgeführt und die Injektion ist erfolgreich
//Sie können Fügen Sie Ihre Werbung, Ihre Sprungadresse usw. hinzu. Um den Zweck eines böswilligen Angriffs zu erreichen
//Verwenden Sie create_functoin(), um eine anonyme Funktion zu erstellen
//Da diese Funktion veraltet ist, einige Die Redakteure werden eine Warnung aussprechen, und es ist sinnlos, mehr zu sagen
//Es reicht zu wissen, dass es diese Funktion bereits auf dieser Welt gab
$func1 = create_function('$a,$b', 'return ($a+$b);'); echo $func1(10,20);
Das obige ist der detaillierte Inhalt voneval() und create_function() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!