Скачать только по сессии

1

Предположим, что я хочу разместить некоторые файлы pdf в определенной директории на моем сервере (например, domain/myfiles). По этой причине я создаю уникальную - трудно угадать - ссылку, используя некоторые общие функции php, а затем помещаю файл внутри этого определенного каталога (domain/myfiles/hardToGuessHash.pdf).

Однако, если кто-то domain/myfiles/hardToGuessHash.pdf доступ к моему серверу через domain/myfiles/hardToGuessHash.pdf он сможет просмотреть и загрузить этот файл.

Есть ли способ, чтобы предварительно запросить session access, чтобы остановить несанкционированный доступ к моим документам? Я искал в StackOverflow, но я действительно ничего не придумал.

Уточнение: я не хочу скрывать ссылку для загрузки. Я хочу потребовать проверку для загрузки. Например, если пользователь A -that имеет права на скачивание копий file- - вставляет ссылку загрузки на человека B, тогда человек B не должен скачивать файл, просто из ссылки!

Благодаря !

  • 0
    обнаружил этот stackoverflow.com/q/17533806 и stackoverflow.com/q/10997516 после поиска в Google «скрыть загрузку файлов php», и вы можете продолжить поиск оттуда, даже добавив «сеансы» в этот список ключевых слов. Просто используйте условный оператор для сессий, если требуется, и в качестве дополнительного метода; просто как пирог . В идеале, использование базы данных также может оказаться полезным. Кроме того, вы можете размещать свои файлы вне общедоступной реальности вашего сайта.
  • 0
    @ Fred-ii- Возможно, мне следовало уточнить, что я не хочу скрывать URL-ссылку. Я обновлю вопрос.
Показать ещё 6 комментариев
Теги:
file-management

1 ответ

3
Лучший ответ

поэтому храните файлы за пределами документа root-, затем NO имеет прямой доступ.

все файлы разделяются с помощью php-страницы, которая проверяет сеанс:

<?php
session_start();
if (isset($_SESSION['logged_in'])) { //or what ever session check you like
  $file = '/this/is/the/path/file.mp3';

  header('Content-type: audio/mpeg');
  header('Content-length: ' . filesize($file));
  readfile($file);
}else{
echo 'you cant have the file';
}
?>

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

  • 1
    хорошо, что зеленая галочка была быстрой. Как я и предлагал, n'est-ce pas?
  • 0
    вау, я все еще редактировал
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню