Ограничение доступа к изображениям на сайте - PullRequest
3 голосов
/ 29 июля 2009

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

Я видел различные решения проблемы «скрыть изображение» в сети, включая следующие, в которых используется файл чтения php. Я также видел другой, который использует .htaccess.

Использовать php's readfile () или перенаправить для отображения файла изображения?

Я не в восторге от решения для чтения файлов, так как загрузка изображений кажется медленной, и я хотел бы иметь возможность использовать FancyZoom от Cabel Sasser, которому необходим беспрепятственный доступ к изображению (его библиотека хочет ссылку к полноразмерному изображению), чтобы исключить .htaccess.

Чтобы вспомнить, что я пытаюсь сделать:

1) Предоставьте сайт, где я даю пользователям возможность идентифицировать себя как кого-то, кого я хотел бы посмотреть на мои изображения. 2) Ограничить случайным пользователям сети возможность видеть эти изображения. 3) Используйте FancyZoom, чтобы взрывать миниатюры.

Мне все равно, какую технологию в конечном итоге использовать - Javascript, PHP и т. Д. - что бы ни было самым чистым и простым.

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

Ответы [ 4 ]

6 голосов
/ 29 июля 2009

Вместо предоставления ссылки на изображение. Предоставьте ссылку на скрипт cgi, который автоматически предоставит правильный заголовок и содержимое изображения.

Например: image.php? sample.jpg

Затем вы можете убедиться, что они уже аутентифицированы (например, передать идентификатор сеанса) как часть ссылки.

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

header('Content-Type: image/jpeg');

Редактировать: Если это должно быть быстро, вы можете написать это на C / C ++ вместо php.

3 голосов
/ 29 июля 2009

Использование .htaccess должно быть самым безопасным / самым простым методом, поскольку он встроен в функциональность самого веб-сервера.

0 голосов
/ 06 февраля 2012

Если вы используете Nginx , вы можете использовать модуль Secure Link .

0 голосов
/ 29 июля 2009

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

Вы можете разрешить доступ к различным каталогам по паролю и загружать изображения непосредственно в файловую систему, так как TinyWebGallery будет проверять наличие новых папок / фотографий на лету. Он генерирует миниатюры и дает пользователям возможность оценивать / комментировать фотографии (Вы можете отключить это).

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

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