(PHP 3, PHP 4, PHP 5)
escapeshellcmd()は、文字列中においてシェルコマ ンドをだまして勝手なコマンドを実行する可能性がある文字をエスケー プします。この関数は、ユーザに入力されたデータを関数 exec()またはsystem()または、 backtick 演算子 に渡す前に全てエスケープを行う場合に使用するべきです。 標準的な使い方は以下のようになるでしょう。
<?php$e = escapeshellcmd($userinput); // ここでは、$eにスペースがあるかは考慮していませんsystem("echo $e");$f = escapeshellcmd($filename); // ここでは配慮し、クオートしますsystem("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");?>
escapeshellarg(), exec(), popen(), system(), バックティック演算子 も参照ください。