escapeshellcmd
(PHP 4, PHP 5)
escapeshellcmd — シェルのメタ文字をエスケープする
説明
string escapeshellcmd
( string $command
)
escapeshellcmd() は、文字列中においてシェルコマンドを だまして勝手なコマンドを実行する可能性がある文字をエスケープします。 この関数は、ユーザに入力されたデータを関数 exec() または system() または、 バックティック演算子 に渡す前に全てエスケープを行う場合に使用するべきです。
#&;`|*?~<>^()[]{}$\、\x0A および \xFF については、その文字の前にバックスラッシュが 追加されます。' および " は、対になっていない場合にのみエスケープされます。Windows では、 これらの文字に加えて % がスペースに置き換えられます。
パラメータ
- command
-
エスケープされるコマンド
返り値
エスケープされた文字列
例
Example#1 escapeshellcmd() の例
<?php
$e = escapeshellcmd($userinput);
// ここでは $e がスペースを含んでいても関係ない
system("echo $e");
$f = escapeshellcmd($filename);
// ここでは気を遣い、クォートを使用する
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");
?>