eval 関数の正しい無効化と PHP_PHP チュートリアルの誤解の紹介

WBOY
リリース: 2016-07-13 10:47:44
オリジナル
1081 人が閲覧しました

eval 関数は php の関数であり、システムコンポーネント関数ではありません。php.ini の disable_functions で無効にすることはできないため、php_function ではありません。

eval() は PHP のセキュリティにとって非常に破壊的です。

を防ぐためには通常は使用されません。
コードは次のとおりです コードをコピー

使用例

コードは次のとおりです コードをコピー


$string = 'カップ';
$name = 'コーヒー';
$str = 'この $string には $name が含まれています。
';
エコー $str;
eval( "$str = "$str";" );
エコー $str;
?>


この例の戻り値は
この $string には $name が含まれています。
このカップにはコーヒーが入っています。


または、より高度なものは

コードは次のとおりです コードをコピー
$str="hello world"; //例えば元の計算結果です
$code= "print('n$strn');";//これはデータベースに保存されたphpコードです
echo($code);//結合されたコマンドを出力し、str文字列が置き換えられて完全なphpコマンドが形成されますが、実行されません
eval($code);//このコマンドが実行されました
?>;

上記のコーヒーの例では、eval で最初に文字列が置換され、次に置換後に完全な代入コマンドが実行されます。

ドアを壊すようなポニーは禁止されるべきです

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

実際、eval() は関数ではなく言語構造体であるため、php.ini で disable_functions を使用して eval() を無効にすることはできません

eval は PHP_FUNCTION 関数ではなく zend です。

phpでevalを無効にする方法:

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

Suhosinインストール後

php.iniにSuhosin.soをロードし、

suhosin.executor.disable_eval = onを追加します

以上です 要約すると、PHP では PHP の eval 関数を無効にすることはできず、プラグインのみを使用できます

http://www.bkjia.com/PHPjc/632829.html

tru​​ehttp://www.bkjia.com/PHPjc/632829.html技術記事 eval 関数は php の関数であり、システム コンポーネント関数ではありません。php.ini の disable_functions で無効にすることはできないため、php_function ではありません。 ph の eval()...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!