Как ограничить доступ к определенному виду контента, с Apache или .htaccess? - PullRequest
3 голосов
/ 08 мая 2011

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

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

Например: Пользователь 1 хочет поделиться Фото A с Пользователем 2, поэтому он предоставляет ему доступ. Пользователь 2 щелкает правой кнопкой мыши на изображении, копирует его URL, например, «http://example.com/private123.jpeg',», и отправляет его пользователю 3. Теперь пользователь 3 может видеть изображение, которое он не должен видеть.

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

Возможно ли это с apache? Я думал, что, возможно, я смогу создать cookie, когда пользователь войдет в систему, и позволить Apache как-нибудь проверить это. Меня не волнует, могут ли быть подделаны файлы cookie, 99,99% пользователей не знают, как это сделать, и фотографии не нуждаются в большей безопасности, чем эта.

1 Ответ

7 голосов
/ 08 мая 2011

Храните все изображения в своем собственном каталоге, и в этом каталоге поместите файл .htaccess с этим в нем

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*name-of-my-cookie.*$ [NC]
RewriteRule .* /whatever/page [NC,L]
...