У меня есть несколько HTML-тегов видео с исходными URL-адресами, как показано в моем файле PHP:
<video class="d-block video-js vjs-default-skin col-video" width="100%" controls:false;>
<source src="<?php echo $videoPath; ?>" type='video/mp4'>
</video>
Как загружено клиентом, атрибут источника выглядит следующим образом в веб-браузере:
<source src="./Username/videos/001_video.mp4" type='video/mp4'>
{...}
<source src="./Username/videos/002_video.mp4" type='video/mp4'>
{...}
Моя проблема в том, что Я не хочу, чтобы клиент мог просматривать видео другого пользователя, изменив URL в атрибуте источника тегов видео.
Похоже, это называется "пользовательское содержимое / ресурсы с ограниченным доступом" (не уверен, поскольку я разработчик C / C ++).
Я не использую фреймворк, чистый PHP, на L.A.M.P. (Apache2) веб-сервер.
Я знаю, что это было сделано 10 лет назад, и есть много более новых решений с использованием фреймворков или других языков, таких как NodeJS, но у меня нет возможности изменить архитектуру веб-сайта на данный момент (но это будет рассмотрен в будущем).
Это можно сделать на стороне сервера в конфигурации Apache (если можно?) Или на стороне HTML / PHP.
То, что я видел в Интернете перед тем, как спросить, - это решение, подобное этому (https://www.sitepoint.com/community/t/hide-video-url/225822/7), , которое я пробовал :
<source src="video.php?show_the_video=VIDEO_ID/NAME_ENCRYPTED" type='video/mp4'>
И есть, в video.php, что-то вроде этого:
if (($_SERVER['REQUEST_METHOD'] === "GET") && ( isset($_GET['show_the_video']) )) {
$uncryptedPath = decrypt($_GET['show_the_video']);
$ctype = 'video/mp4';
header('Content-Type: ' . $ctype);
$file_path_name = $uncryptedPath;
$handle = fopen($file_path_name, "rb");
$contents = fread($handle, filesize($file_path_name));
fclose($handle);
echo $contents;
} else {
echo "";
}
Но мне кажется, это не очень хорошо работает (может быть, у меня много видео-тегов на одной странице). Работало частично, но загрузка страницы была такой медленной ... Это не приемлемо для меня. На загрузку страницы ушло около 20 видео-тегов.
Кто-нибудь может мне помочь, направляя меня или предлагая решения?