Maison >développement back-end >tutoriel php >Explication détaillée des exemples de méthodes de désactivation de la fonction eval() en php

Explication détaillée des exemples de méthodes de désactivation de la fonction eval() en php

墨辰丷
墨辰丷original
2018-05-30 09:46:151996parcourir

En PHP, eval est une fonction et ne peut pas être désactivée directement. Cependant, la fonction eval est assez dangereuse et pose souvent quelques problèmes. Aujourd'hui, nous allons examiner le fonctionnement de la fonction eval sur les tableaux et comment désactiver eval. () en PHP, les amis qui en ont besoin peuvent se référer au tableau d'opérations de la fonction

php eval() :

<?php
$data = "array(&#39;key1&#39;=>&#39;value1&#39;,&#39;key2&#39;=>&#39;value2&#39;,&#39;key3&#39;=>&#39;value3&#39;,&#39;key4&#39;=>&#39;value4&#39;)";
$arr = eval("return $data;");
var_dump($arr); //array
?>

<.>

Exécuter les résultats :

array(4) { ["key1"]=> string(6) "value1" ["key2"]=> string(6) "value2" ["key3"]=> string(6) "value3" ["key4"]=> string(6) "value4" }

De nombreuses méthodes sur Internet qui utilisent Disable_functions pour désactiver eval sont fausses !

En fait, eval() ne peut pas être désactivé en utilisant Disable_functions dans php.ini :

car eval() est une construction de langage et non une fonction

eval est zend , ce n'est donc pas une fonction PHP_FUNCTION ;

Alors, comment PHP interdit-il l'évaluation ?

Si vous souhaitez désactiver eval, vous pouvez utiliser l'extension php Suhosin :

Après avoir installé Suhosin, chargez Suhosin.so dans php.ini et ajoutez suhosin.executor.disable_eval = on

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

phpMéthodes de mise en œuvre de l'annulation des transactions

php

phpUtilisez la fonction exec() sous PDO pour implémenter des méthodes de requête qui affectent le nombre de lignes après exécution

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