Jaydeep Shah Ответов: 1

Запретить загрузку при копировании ссылки из загрузок


привет, currencty я загружаю файлы с сервера.

в то время как он загружает свою ссылку make для загрузки.(crome)

предположим я скопирую эту ссылку и дам другую эту ссылку он тоже сможет скачать файл

как я могу это предотвратить?

Что я уже пробовал:

В кроме после ссылки на скачивание ..смотрите в разделе Загрузки.

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

F-ES Sitecore

Обычно вы делаете что-то вроде генерации случайной строки текста и сохранения ее в сеансе, а также добавляете ее в ссылку для загрузки

/файл/скачать?файл=mypicture.&ампер формат JPG;код=randomtexthere

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

Jaydeep Shah

Хорошо, я попробую добавить случайный текст к ссылке для скачивания.
Я использую Amazon S3.
ссылка для скачивания истекает примерно через 3 минуты. (crome -> загрузки )
но Уайтинг 3 мин любой желающий может скачать этот файл.

1 Ответов

Рейтинг:
0

OriginalGriff

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

Вместо этого создайте "страницу загрузки", которая принимает строку запроса, указывающую файл - GUID-это хорошая идея, а база данных, связывающая местоположение файла со значением GUID (с датой истечения срока действия также хорошая идея). Затем вы даете им страницу загрузки и строку запроса в качестве ссылки.

На своей странице вы извлекаете значение GUID из запроса, проверяете базу данных на наличие файла и отправляете его в качестве загрузки. Затем вы можете очистить базу данных, чтобы вызвать GUID для будущих загрузок.