我正在編寫我們公司使用的一個可怕的通信軟件的web界面。該軟件沒有真正的用戶界面,並要求我們給我們的系統提供膩子訪問,以便我們的客戶甚至可以提取數據。我的網絡界面必須運行一個exec();
函數,它必須傳遞用戶輸入的一些變量。使用用戶插入變量來清理exec命令的最佳方法
$command = "report-call '$type' '$study' '$server' '$tag' '$specopt1' '$specopt2' '$specopt3' '$specopt4'";
$last_line = exec($command, $output, $returnvalue);
現在,我想我也許可以剛剛從$command
varible刪除任何分號和是安全的,但我不知道,這就是爲什麼我們去住下個月之前我在這裏冒充本。
什麼是最好的消毒方法$command
?有幾個特殊的字符,我需要在變量[ ] < > ! # $
。
刪除我的答案,因爲顯然我們在同一時間打字,但你給了體面的例子。鏈接手冊:http://us.php.net/manual/en/function.escapeshellarg.php,http://us.php.net/manual/en/function.escapeshellcmd.php – 2009-06-11 19:06:29