Предотвращение прямого доступа к файлам - PullRequest
0 голосов
/ 30 апреля 2018

Я задал этот вопрос некоторое время назад, но не получил ответа. Я надеюсь, что это нормально, чтобы опубликовать его снова.

Я храню загруженные пользователем файлы ZIP на моем сервере. Никто не должен иметь доступ к этим файлам, кроме как через ссылки на сайт.

Например: https://www.example.com/uploads/1.zip

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

Каков наилучший способ достичь этого?

Я пробовал это (в htaccess). Это предотвращает прямой доступ, но также разрывает ссылку:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] 
RewriteRule \.(zip)$ - [F]

Я также рассматривал токены сеансов в URL, но, насколько я понимаю, кто-то с действительным сеансом все равно будет иметь прямой доступ.

Эти файлы всегда будут в своем собственном каталоге "uploads", если это поможет.

Из прочтения других вопросов здесь на ТАК кажется, что это может быть невозможно. Если да, то есть ли другое решение для хранения файлов в руках людей, которые угадывают имена файлов?

...