Безопасная загрузка видео на PHP

#php #file-upload #video

#php #загрузка файла #Видео

Вопрос:

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

С изображениями вы делаете одну простую вещь (после того, как все остальное будет проверено):

     if( $uploaded_type == 'image/jpeg' ) {
        $img = imagecreatefromjpeg( $uploaded_tmp );
        imagejpeg( $img, $temp_file, $imageQualityPercentage);
    }
    elseif( $uploaded_type == 'image/png') {
        $img = imagecreatefrompng( $uploaded_tmp );
        imagesavealpha($img, TRUE);
        imagepng( $img, $temp_file, 9*(1-$imageQualityPercentage/100));
    }
  

Который в основном воссоздает изображение из пользовательского ввода.

Есть ли эквивалент в PHP для видео? Мне бы очень хотелось, чтобы существовали mp4 / oog / webm (и поддерживали большинство кодеков), но кто-нибудь знает какие-либо библиотеки с открытым исходным кодом, которые делают это хотя бы для любого формата / кодека?

Ответ №1:

Вы могли бы использовать ffmpeg или что-то подобное для извлечения изображений и аудио, а затем объединить их вместе, но я думаю, что там также необходимо учитывать некоторые соображения безопасности.

Комментарии:

1. Спасибо за ответ! Я, вероятно, мог бы, в конце концов, мне нужно было бы буквально повторно реализовать видеокодер / декодер для каждого формата, что заняло бы больше времени на несколько порядков, чем то, что у меня есть.

Ответ №2:

используя защищенную папку с видео .htaccess на вашем сервере.

 RewriteEngine on
RewriteRule ^(.*)/(.*)/(.*)$ mycontroller.php?h=$1amp;t=$2amp;v=$3
RewriteRule ^$ - [F]
RewriteRule ^[^/] .(mkv|mp4)$-[F]
  

Комментарии:

1. Именно поэтому я задал этот вопрос на форуме по безопасности, а не ТАК, прежде чем этот удивительный участник перенес его. Нет, обеспечение того, чтобы имя файла имело правильный формат, не «защищает» ввод, и это также не имеет ничего общего с тем, что я конкретно спросил.