Безопасно используя exec с PHP для запуска ffmpeg - PullRequest
3 голосов
/ 18 июня 2009

Я бы хотел запустить ffmpeg из PHP для кодирования видео.

Я думал об использовании команд exec или passthru. Однако меня предупредили, что включение этих функций является угрозой безопасности. По словам моего обслуживающего персонала:

Директива disable_functions используется для отключения любых функций, которые позволяют выполнять системные команды. Это для большей безопасности сервера. Эти функции PHP могут использоваться для взлома сервера, если они не используются должным образом.

Я предполагаю, что если exec включен, то кто-то может (возможно) выполнить произвольную команду Unix. Кто-нибудь знает безопасный способ запуска ffmpeg из PHP?

Кстати, я на выделенном сервере. Спасибо заранее!

Ответы [ 2 ]

7 голосов
/ 18 июня 2009

exec сам по себе не представляет угрозы безопасности, как если бы вы входили в защищенный терминал.

Подумайте об этом так, если бы вы перечислили содержимое каталога следующим образом

exec( 'ls /foo/bar' );

не имеет значения, что ваш пользователь отправил на ваш php-скрипт, он будет отображать только указанный каталог.

Пока вы тщательно очищаете любые входные данные от пользователя и воздерживаетесь от вывода конфиденциальной информации, с вами все должно быть в порядке. Используйте следующие методы для санации ввода перед запуском его в командной строке:

  • escapeshellarg () - экранировать строку, которая будет использоваться в качестве аргумента оболочки
  • escapeshellcmd () - Метасимволы Escape оболочки
0 голосов
/ 08 июля 2010

вы можете попробовать использовать библиотеку ffmpeg-php ... находится здесь: http://sourceforge.net/projects/ffmpeg-php/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...