ホームページ >バックエンド開発 >PHPチュートリアル >phpのeval()関数を無効にする方法例を詳しく解説

phpのeval()関数を無効にする方法例を詳しく解説

墨辰丷
墨辰丷オリジナル
2018-05-30 09:46:151995ブラウズ

PHP では、eval は関数であり、直接無効にすることはできません。しかし、eval 関数は非常に危険であり、多くの場合問題を引き起こします。今日は、配列に対する eval 関数の操作と、eval( を無効にする方法) を見ていきます。 PHP の ) 関数を必要とする友人は、

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
?>

実行結果:

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

インターネット上の多くの人がこう言っています。 disable_functions を使用して eval を無効にするのは間違いです。

実際、php.ini で disable_functions を使用して eval() を無効にすることはできません。

eval() は関数ではなく言語構造であるためです

eval は zend であるため、PHP_FUNCTION 関数ではありません

それでどうなるでしょうか。 php について eval を禁止するとどうなるでしょうか?

evalを無効にしたい場合は、PHP拡張機能Suhosinを使用できます:

Suhosinをインストールした後、php.iniにSuhosin.soをロードし、suhosin.executor.disable_eval = onを追加します

上記は内容全体ですこの記事が皆さんの勉強に役立つことを願っています。


関連する推奨事項:

phpトランザクションロールバックの実装方法

phpphpでのbind_param()関数の使用法の詳細な説明

php exec() を使用するクエリ実行後に影響を受ける行数を実装する PDO メソッドの関数

以上がphpのeval()関数を無効にする方法例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。