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