Илья2
Guest
Защита от прямого скачивания для больших файлов
Привет!
Сорри, если тема относится к "начинающим".
Есть следующая задача: предоставить авторизованный доступ к видео файлам, чтобы пользователь, когда прошел авторизацию и получил видео файл, он не смог бы каким либо образом "поделиться" этим с другими не авторизованными пользователями. (на стороне клиента будет запущен просмотрщик).
Мне интересно какие способы существуют.
1. "чистый PHP" - есть php скрипт "прокси", через который проходят все запросы к файлам, например download.php?file_id=111, и этот скрипт проверяет права доступа (через сессию) данного клиента и в случае если есть доступ, то выдает контент файла "на выход" -- я вижу этот как полное чтение файла и вывод его.
Для небольших файлов этот метод вполне подходит. Но для файлов порядка >100Мб, я думаю считывание этого файла в память может не закончиться успешно. Или считывать файл порциями и выдавать порциями?
2. "apache" htaccess метод - при авторизации пользователя, на папку, где хранятся файлы, генерировать .htaccess в котором прописан доступ только для IP данного клиента, т.е. ограничение на IP - после окончания времени жизни сессии - удаление этого IP.
3. гипотетический apache фильтр метод - не знаю может быть уже реализована такая возможность в каких либо apache модулях: на какую либо папку, либо по RegExp маске на url (по типу mod_rewrite) запускается фильтр (допустип тотже php скрипт который проверяет доступ) и если фильтр возвращает положительный ответ, до доступ проходит, если отрицательный - то ошибка.
мне более нормальным видится 1ый способ, но я не понимаю как преодолеть проблему большого объема файла.
Илья
Привет!
Сорри, если тема относится к "начинающим".
Есть следующая задача: предоставить авторизованный доступ к видео файлам, чтобы пользователь, когда прошел авторизацию и получил видео файл, он не смог бы каким либо образом "поделиться" этим с другими не авторизованными пользователями. (на стороне клиента будет запущен просмотрщик).
Мне интересно какие способы существуют.
1. "чистый PHP" - есть php скрипт "прокси", через который проходят все запросы к файлам, например download.php?file_id=111, и этот скрипт проверяет права доступа (через сессию) данного клиента и в случае если есть доступ, то выдает контент файла "на выход" -- я вижу этот как полное чтение файла и вывод его.
Для небольших файлов этот метод вполне подходит. Но для файлов порядка >100Мб, я думаю считывание этого файла в память может не закончиться успешно. Или считывать файл порциями и выдавать порциями?
2. "apache" htaccess метод - при авторизации пользователя, на папку, где хранятся файлы, генерировать .htaccess в котором прописан доступ только для IP данного клиента, т.е. ограничение на IP - после окончания времени жизни сессии - удаление этого IP.
3. гипотетический apache фильтр метод - не знаю может быть уже реализована такая возможность в каких либо apache модулях: на какую либо папку, либо по RegExp маске на url (по типу mod_rewrite) запускается фильтр (допустип тотже php скрипт который проверяет доступ) и если фильтр возвращает положительный ответ, до доступ проходит, если отрицательный - то ошибка.
мне более нормальным видится 1ый способ, но я не понимаю как преодолеть проблему большого объема файла.
Илья