ограничить доступ к файлам изображений для зарегистрированных пользователей только в php

Предположим, что пользователь A имеет некоторые изображения в своей учетной записи в Facebook, которые он / она может просматривать после входа в систему.

Если пользователь A выходит из системы и просматривается URL-адрес одного из этих изображений, появляется сообщение типа «ограничение доступа».

Подумайте о сайте социальной сети, построенном на PHP.

Как добиться такого контроля, чтобы изображения NO могли просматриваться без входа на сайт JUST, как это делает Facebook?

Solutions Collecting From Web of "ограничить доступ к файлам изображений для зарегистрированных пользователей только в php"

  • Переместите все изображения в папку, недоступную из Интернета.
  • Внедрите php-скрипт (image.php), который проверяет, вошел ли пользователь в систему и принимает имя изображения как вход (например, image.php? Name = flower.png).
  • Если пользователь вошел в систему, отправьте соответствующий header() изображения типа контента header() http://il2.php.net/manual/en/function.header.php (например, изображение / png)
  • Прочитайте файл с диска и отправьте его пользователю с помощью readfile() http://php.net/manual/en/function.readfile.php .
  • Убедитесь, что люди не смогут обращаться к файлам за пределами каталога изображений, отправив что-то вроде /images.php?name=/etc/hosts (лучше было бы принять идентификатор изображения вместо имени файла или хеш имя файла, вы можете использовать md5() http://il2.php.net/manual/en/function.md5.php для генерации хэша, но не забудьте назвать файлы изображений в соответствии с их хэшами md5, в этом случае вы всегда искать файл изображения только в каталоге изображений).
  • Если пользователь не вошел в систему, вы можете отправить пользовательский образ, который читает «пожалуйста, войдите в систему» ​​или просто прекратите выполнение сценария.