2009-06-18 8 views
3

私は、ビデオエンコード目的でPHPからffmpegを実行したいと思います。安全にexecを使用してffmpegを実行する

私はexecまたはpassthruコマンドを使用することを考えていました。しかし、私は、これらの機能を有効にすることはセキュリティリスクであると警告されています。私のサポートスタッフの言葉で:

ディレクティブ 'disable_functions'は、システムコマンドの実行を許可する機能を無効にするために使用されます。これは、サーバーのセキュリティを強化するためです。これらのPHP関数は、正しく使用されていない場合にサーバーをクラックするために使用できます。

私は、execが有効になっていると、任意のUNIXコマンドを(おそらく)実行する可能性があると推測しています。 PHPからffmpegを実行する安全な方法を知っている人はいますか?

ところで、私は専用サーバーにいます。あらかじめありがとう!

+0

私の質問をチェックしてくださいestion:http://stackoverflow.com/questions/4173405/convert-using-ffmpeg-without-execコメントのどこかにあなたがそれを行う方法があります、それはPHPライブラリを記録し、それにいくつかのものを追加することです –

答えて

7

execあなた自身が安全な端末にログインする以上にセキュリティ上のリスクはありません。それの

考えるこの方法、それはあなたのユーザーがあなたのPHPスクリプトに送信されたかは重要ではないので、

exec('ls /foo/bar');

、あなたのようなディレクトリの内容を一覧表示した場合、それは今まで一覧表示しますディレクトリを指定します。

ユーザからの入力を慎重に慎重に扱い、機密情報の出力を控えるのであれば問題ありません。

は、コマンドライン上でそれを実行する前の入力をsanatizeするには、次の方法を使用します。

シェルのメタ文字をエスケープします
+0

ありがとう!だから私はffmpegコマンドに私自身の入力を生成しているので私は安全だと思います。 –

+1

@Josiah:あなたはexec()を意味すると思います。 not eval()。 http://us2.php.net/manual/en/function.exec.php –

+0

@Andrew:ありがとう、私は答えを修正しました。 – Josiah

関連する問題