tp
Guest
Как отдавать файлы только пользователю, имеющему на них права?
Ситуация такая:
Файлы загружаются в папку, которая недоступна извне.
Как отдать эти файлы, оптимизировав процесс?
Точнее пользователь авторизуется - у него появляются права на определенные файлы (на виртуальную папку, которая к реальному хранению на сервере отношения не имеет).
Мне приходят в голову 2 варианта: отдавать через скрипт fread или делать symlink и давать ссылку на нее.
Второй вариант мне кажется менее ресурсоемкий.
Но тут следующая проблема: если хранить ссылку постоянно, то ее можно использовать как обычную ссылку, т.е. Вася Пупкин, у которого были права может поместить ее где угодно и она будет играть роль обычной ссылки.
Если каждый раз создавать ссылку "на лету" после авторизации и, например, убивать ее по крону, то будет лишняя нагрузка на сервер.
Еще мб такое: создаем реальную папку с id виртуальной папки, кидаем туда симлинки и они там хранятся, но тогда надо защитить эту папку, получается защищаем неизвестным никому паролем, потом после успешной авторизации скрипт сам посылает этот пароль ($PHP_AUTH_USER и $PHP_AUTH_PW) и пользователю открывается папка.
Реализуем ли такой вариант, какие у него минусы?
Какие еще возможны здесь варианты?
Ситуация такая:
Файлы загружаются в папку, которая недоступна извне.
Как отдать эти файлы, оптимизировав процесс?
Точнее пользователь авторизуется - у него появляются права на определенные файлы (на виртуальную папку, которая к реальному хранению на сервере отношения не имеет).
Мне приходят в голову 2 варианта: отдавать через скрипт fread или делать symlink и давать ссылку на нее.
Второй вариант мне кажется менее ресурсоемкий.
Но тут следующая проблема: если хранить ссылку постоянно, то ее можно использовать как обычную ссылку, т.е. Вася Пупкин, у которого были права может поместить ее где угодно и она будет играть роль обычной ссылки.
Если каждый раз создавать ссылку "на лету" после авторизации и, например, убивать ее по крону, то будет лишняя нагрузка на сервер.
Еще мб такое: создаем реальную папку с id виртуальной папки, кидаем туда симлинки и они там хранятся, но тогда надо защитить эту папку, получается защищаем неизвестным никому паролем, потом после успешной авторизации скрипт сам посылает этот пароль ($PHP_AUTH_USER и $PHP_AUTH_PW) и пользователю открывается папка.
Реализуем ли такой вариант, какие у него минусы?
Какие еще возможны здесь варианты?