linuxコマンドをサーバに送るAPIを作ることは可能でしょうか?linuxサーバでコマンドを実行するAPIを作成する
私はこの
// http://localhost/command=netstat
<?php
$command = $_GET['command'];
// Sends server $command
?>
linuxコマンドをサーバに送るAPIを作ることは可能でしょうか?linuxサーバでコマンドを実行するAPIを作成する
私はこの
// http://localhost/command=netstat
<?php
$command = $_GET['command'];
// Sends server $command
?>
幹部が外部プログラムを実行するために使用されるようなものを探していることになります。サンプルコードである続い
string exec (string $command [, array &$output [, int &$return_var ]])
http://php.net/manual/en/function.exec.php
。私はffmpegを使用してビデオをPHPで変換しました。
$a = exec('C:\ffmpeg\bin\ffmpeg.exe -i 56c6ed0e49fe0.qt -strict -2 out22.mp4');
希望すると、これが役に立ちます。
_Suggestion:_ユーザーの入力とともに使用すると、このような極端なセキュリティ上の脅威に言及したいことがあります。任意のコマンドと属性/パラメータを渡すことができ(不適切なエスケープなど)、OPがサーバーの制御を失うまで時間がかかりません。 –
次に、セキュリティをAPIレベルで追加します。私が送ったコマンドは、ローカルサーバー上で動作するので、セキュリティの脅威はありません。 –
セキュリティを追加するには多くの方法がありますが、多くの人が回答を読んでからコードをコピー/ペーストするだけなので、その回答にはリスクを記載する必要があります。 –
私はあなたがコマンドと属性のホワイトリストを持っていることを望んでいるか、誰かがあなたのサーバーを引き継ぐようになったばかりですか?次の時間のための提案は、質問を投稿する前にgoogleを試してください(より速く行くでしょう)。 "php run linux command"のような何かが、これについてのマニュアルを含め、あなたに_many_リンクを与えるでしょう:http://php.net/manual/en/function.shell-exec.php –
はい、それも可能です - 非常に簡単です。しかしあなたは本当にあなたが何をしているのかを絶対に*知っていなければ**本当にそれをしてはいけません。それ以外の場合は、サーバが**危険にさらされる前に数時間、または数分かかることになります**これは設計上の不安があるためです。 –