Как хранить изображения в файлах на сервере, чтобы сохранить конфиденциальность для некоторых из тех, кто в WWW - PullRequest
0 голосов
/ 27 августа 2010

Я планирую создать портал www на PHP, где будет храниться много картинок.Я решил хранить картинки в каталогах на сервере (не в БД) по причине производительности.Некоторые изображения будут доступны для всех пользователей из Интернета, а некоторые (если пользователь установил их как личные) не в соответствии с идентификатором сеанса.Как лучше всего решить эту проблему?Перфорация важна.Должен ли я использовать какой-нибудь mod_rewrite или переместить личные файлы в другой каталог, кроме публичного?

Джон

Ответы [ 3 ]

0 голосов
/ 27 августа 2010
  1. Не разрешать пользователям создавать горячие ссылки на эти изображения. Игнорирование этого означает, что вы позволите халявщикам украсть сетевые ресурсы у других законных пользователей.
  2. Убедитесь, что эти изображения не находятся в пути, доступном через Интернет.
  3. Найдите способ ограничить движение. Вы не хотите, чтобы один пользователь занимал полосу пропускания, которая должна была быть выделена другим пользователям.
0 голосов
/ 27 августа 2010

Храните личные файлы за пределами вашего wwwroot, доступный только через php-скрипт, который проверяет права доступа и перенаправляет на страницу 403 или серверы изображения, например, через readfile ().

0 голосов
/ 27 августа 2010

Есть два варианта:

  1. Сохраните изображения в некоторой общедоступной папке корня вашего сайта, назовите файлы так, чтобы имя файла не могло быть угадано (случайным образом сгенерировано и не последовательно), и убедитесь, что индексация каталога отключена. Размещайте только ссылки на изображения, которые пользователь имеет право просматривать. При условии, что они не делятся ссылками на свои личные фотографии, людям будет очень трудно случайно (или намеренно) наткнуться на частные фотографии.

  2. Храните изображения вне корня вашего сайта и отправляйте их с помощью сценария, который выполняет аутентификацию в сеансе. Есть примеры того, как прочитать изображение в память и вывести его в браузер на странице imagejpeg PHP.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...