Защита файлов от прямого скачивания

I0
На сайте с 21.01.2010
Offline
115
541
Например на сайте https://5mod-file.ru/download/file/283619.php при нажатии по ссылке скачивание происходит.
Но если попробовать зайти на прямую по ссылке: https://5mod-file.ru/download/file/2023-06/1685707882_case-simulator-for-standoff-2-v2_8_3_5-mod-5mod_ru.apk
Скачивание не происходит.
Как реализовать такую защиту файлов от прямого скачивания?
lutskboy
На сайте с 22.11.2013
Offline
186
#1
там методом  POST отправка идет. ну и реферер еще наверно проверяет
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#2
Тут примерно обсуждали: https://searchengines.guru/ru/forum/1073979
Настройка nginx для отдачи больших файлов. - Администрирование серверов - Сайтостроение - Форум об интернет-маркетинге
Настройка nginx для отдачи больших файлов. - Администрирование серверов - Сайтостроение - Форум об интернет-маркетинге
  • 2023.06.05
  • searchengines.guru
некоторые юзеры жалуются что у них не получается скачать файлы. Еще можно сделать просто тупо редирект на скачивания файла. то есть вероятность что пользователь не успеет докачать файл и он удалится по крону. Чтобы файлы не удалялись, которые сейчас скачиваются т
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Алексей Теплов
На сайте с 30.12.2019
Offline
45
#3
Под NginX очень просто реализовать такую защиту. В конфиге поставьте реврайт на обработчик загрузок
location /download/ {
            rewrite ^/download/ /download.php;
            }

В ссылке на загрузку можно вставить например хешь из ip пользователя и секретного слова, обработчик проверит, если хеши из ссылки и хешь пользователя совпадают, то отдаём файл. Проще говоря, привязываем ссылку к IP пользователя, например так

https://site.ru/download/'.md5($_SERVER['REMOTE_ADDR']."секретное слово").'/file.apk

Если нужно можно в ссылке закодировать время жизни ссылки, да много чего можно!

Отдаём файл вот такой командой, где $path реальный путь до файла на сервере.

header("X-Accel-Redirect: ".$path);

Можно заблокировать в конфиге внешний доступ к папке с файлами командой internal, но лучше сделать реальный путь до файла не имеющего не чего общего со ссылкой...

В обработчике загрузки можно например поставить увлечение счётчика загрузок, проверить страну, браузер и так далее, на что у вас фантазии хватит!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий