2014-12-04 69 views
0

運行具有root權限的腳本,我必須從PHP Web服務如何從Web服務在Apache

$telephoneNumber = $_REQUEST["telephoneNumber"]; 
$textMessage = $_REQUEST["textMessage"]; 

$command = "sudo python /home/frank/Desktop/Main.py singular $telephoneNumber \"$textMessage\""; 
system($command, $output); 

$outVO->setOutcome(1); 
$outVO->setDescription($output); 

return $outVO; 

運行具有root權限的Python腳本,但Web服務的專利是WWW的數據,所以不工作

+1

請注意,這是可怕的危險代碼。想象一下,如果有人提交了一個數字或消息,像'\「; sudo rm -rf /;' – 2014-12-04 17:36:20

+0

在我看來,它並不危險,因爲數字和文本是簡單的字符串,將傳遞給一個GSM模塊,處理髮送短信 – NexusDigital 2014-12-04 17:43:30

+0

你錯了,如果用戶包含';'(或者使用其他各種技巧),下面的文本將不會作爲參數傳遞給你的Python腳本,而是作爲單獨的命令被shell評估。 'sudo'到特定的命令,惡意用戶仍然可以做不受歡迎的事情。閱讀[documentation](http://php.net/manual/en/function.system.php)中的警告。 – 2014-12-04 17:46:56

回答

-1

您遇到的問題之一是您試圖訪問主目錄中的文件。你應該在你的工作目錄中擁有這兩個文件來簡化它。

+0

雖然這可能並不理想,但它不會阻止這段代碼的工作。 – duskwuff 2014-12-04 17:34:03

+0

如果權限是一個問題(在這種情況下,他希望sudo),但這並不是一件好事,但如果我提供的答案不夠充分,然後th潛在的惡意使用是可能的。 – Anthony 2014-12-04 17:36:13