Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Шифрование ссылок для скачивания

#файлы #php #ссылки #шифрование


Вопрос довольно популярный, объясните пожалуйста каким образом можно наиболее адекватно
шифровать ссылки для скачивания. То есть пользователь вошел -> для него генерируется
ссылка, допустим на zip архив, ну и удаляется после скачки. Ни когда таким не занимался,
стало интересно.    


Ответы

Ответ 1



Можно пользоваться средствами веб сервера: модуль SecureLink для nginx (вовсю использую); и, кажется, mod-auth-token для Apache. Upd. Можно написать и свою реализацию на том же php, но есть очевидный минус: перформанс. Чтобы не показывать истинный адрес файла, придётся пропускать его контент сквозь работающий php скрипт в течение всего времени скачивания. Т.е. в памяти будет висеть по тяжеленному процессу php на каждую сессию скачивания. А веб сервер делает то же самое, легко и изящно. А, ещё можно создавать временную копию ценного файла, или, лучше, линк на него, со странным именем-абракадаброй, и стирать через опр. время.

Ответ 2



Вот тут человек приводит свой готовый класс для таких целей: Временная ссылка для скачивания файла.

Ответ 3



С помощью php придумываем ссылку и с помощью mod_rewrite подсовываем файл. Например такой .htaccess где index.php обрабатывает все запросы: Options +SymLinksIfOwnerMatch RewriteEngine On RewriteBase / RewriteRule .* index.php [L]

Ответ 4



Я решил так задачу. Зделал файл скачивания назовем его download.php При заходе участника (За регестрированного пользователя) на сайт даем ему случайно сгенерированный ключ, который активен пока пользователь на сайте ?key=KJSJH#&&#EGJHJ к нему прикручиваем имя файла и директорию пользователя в которой находится файл. Отдаем все это через Header() application/octet-stream Ключ можно проверять через сессию например $_SESSION['confirm_download_key']; незнаю насколько эффективно, но пока работает.

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

Отправить комментарий