Apache / nginx мелкозернистые (на файл) разрешения? - PullRequest
0 голосов
/ 03 апреля 2009

Можно ли установить детальные разрешения, используя Apache или nginx? С учетом большого количества файлов и большого количества пользователей, как правильно указать, что каждый прошедший проверку пользователь имеет доступ только к своим собственным файлам?

user_a can access file_a_1, file_a_2
user_b can access file_b_1
user_c can access file_c_1, file_c2, file_c3, file_a_2

Это статические файлы, доступные только для чтения (по большей части). Представьте себе файловую систему, как контроль доступа, но с http. Нет веб-дав; это часть веб-приложения; изображения будут отображаться как часть страницы пользователя в браузере. Я хочу убедиться, что никто больше не увидит изображение, даже если они смогут найти его URL.

Ответы [ 3 ]

1 голос
/ 03 апреля 2009

Тьфу. Если не считать собственного обработчика аутентификации, я сомневаюсь, что есть простой способ сделать это, по крайней мере, с помощью Apache.

Если бы lighttpd был опцией, я бы, вероятно, реализовал проверку безопасности в скрипте PHP, и, если все получилось, добавьте заголовок X-LIGHTTPD-send-file в ответ. Это означает, что lighty будет выполнять всю передачу файлов без прохождения через PHP.

(Быстрый поиск в Google показал, что apache должен поддерживать что-то подобное с X-sendfile, но я не смог ничего об этом узнать из документации Apache.)

edit: Видимо, вы можете сделать то же самое с Apache и mod proxy scgi.

1 голос
/ 06 мая 2009

Я понимаю, что я здесь некропостил, но только для будущих гуглов,

Вот аналогичная опция nginx для решения andri:

http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/

http://wiki.nginx.org/NginxXSendfile

... и то же самое для Apache, по-видимому:

http://tn123.ath.cx/mod_xsendfile/

0 голосов
/ 03 апреля 2009

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

...