#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. Именно поэтому я задал этот вопрос на форуме по безопасности, а не ТАК, прежде чем этот удивительный участник перенес его. Нет, обеспечение того, чтобы имя файла имело правильный формат, не «защищает» ввод, и это также не имеет ничего общего с тем, что я конкретно спросил.