Maison > Article > développement back-end > eval() et create_function() en php
* eval() et create_function()
* 1. eval()
* 1. La fonction eval() calcule la chaîne selon le code PHP
* 2. La chaîne doit être du code PHP légal et doit se terminer par un point-virgule
* 3. Si l'instruction return n'est pas appelée dans la chaîne de code, NULL
* 4 .S'il y a est une erreur d'analyse dans le code, la fonction eval() renvoie false
* 5. Cette fonction est utile pour stocker du code dans un champ de texte de base de données pour des calculs ultérieurs
* 2 , create_function( 'paramètre', 'code corps de fonction') : Créer une fonction anonyme
//Les fonctions des deux instructions suivantes sont exactement les mêmes
eval('echo 4+5;'); //输出9 echo eval('return 4+5;'); //返回9并显示在屏幕上
//Bien que les fonctions du ci-dessus, les deux instructions sont identiques, les valeurs de retour ne sont pas les mêmes
//Donc, si vous souhaitez faire référence à la valeur de retour eval(), vous devez utiliser return
var_dump(eval('echo 4+5;')); //返回 NULL var_dump(eval('return 4+5;')); //返回 9
//Démonstration d'attaque par injection eval()
isset($_GET['p']) ? eval($_GET['p']) : null;
//Ajoutez maintenant ?p=phpinfo(); ou d'autres instructions PHP légales après l'url, elle sera exécutée directement et l'injection est réussie
//Vous pouvez ajouter vos annonces, vos adresses Jump, etc., pour atteindre l'objectif d'attaques malveillantes
//Utilisez create_functoin() pour créer une fonction anonyme
//Parce que cette fonction est obsolète, certains éditeurs donneront un avertissement, inutile d'en dire plus
//Il suffit de savoir que cette fonction a été dans ce monde
$func1 = create_function('$a,$b', 'return ($a+$b);'); echo $func1(10,20);
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!