Аутентификация / Запрет доступа к файлам в каталоге с php - PullRequest
1 голос
/ 24 февраля 2010

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

Кто-нибудь может дать мне некоторые ресурсы или показать пример того, как я могу использовать данные сеанса (и .htaccess?), Чтобы разрешить доступ к закрытым файлам только авторизованным пользователям?

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

Меня не беспокоит безопасность или шифрование на высшем уровне, поскольку файлы не очень чувствительны, но я хочу, чтобы они не были проиндексированы в поисковых системах и т. Д.

спасибо!

Ответы [ 2 ]

1 голос
/ 24 февраля 2010

Полагаю, я бы не использовал .htaccess (или любой другой тип HTTP-аутентификации) для этого: .htaccess / .htpasswd отлично подходят, если вы хотите разрешить / запретить доступ ко всему каталогу , а не к конкретным файлам.


Вместо этого я бы:

  • Запретить любой доступ к файлам - то есть использовать файл .htaccess, содержащий Deny from All
    • Таким образом, никто не имеет доступа к файлу
    • Это означает, что каждому придется использовать другой способ доступа к файлам, а не прямой URL.
  • Разработка сценария PHP, который бы:
    • получить идентификатор файла (например, имя файла или некоторый идентификатор, который может соответствовать файлу)
    • аутентификация пользователей (с некоторыми полями логина / пароля) , против данных, хранящихся в базе данных
    • если пользователь действителен и имеет доступ к файлу (это если разные пользователи не имеют доступа к одному и тому же набору файлов) , прочитайте содержимое файла из вашего PHP-скрипта , и отправьте его пользователю.

Преимущество заключается в том, что ваш PHP-скрипт имеет доступ к БД - это означает, что он может позволить пользователям входить в систему, выходить из нее, он может использовать сеансы, ...


По поводу «отправки файла из PHP», вот несколько вопросов, которые могут пролить свет:

0 голосов
/ 24 февраля 2010

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

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