Intereting Posts
Неверные учетные данные при отправке почты с помощью sendgrid Могу ли я использовать запрос в построителе форм, чтобы получить фильтрованную коллекцию в форме symfony PHP: Перевести относительные img src urls на абсолютные Результаты группы PHP по первой букве имени PHP продолжает вставку при обновлении Yii 2 – вызов метода методом объекта Корзина WooCommerce – Переменная динамической цены переходит в пользовательский ценовой крючок Как установить значение по умолчанию для столбца временной метки в текущую временную метку с миграциями Laravel? Вопрос о большом круге Запрос laravel возвращает странный порядок Регистрация MySQL Query в CakePHP Nginx + php-fpm: ошибка тайм-аута 504 – тайм-аут восходящего потока (110: время ожидания подключения) поиск в Advance Custom Field post в wordpress Larvel 4 перенаправляет проблемы с откатом Как я могу получить доступ к данным, полученным из shell_exec?

Аутентификация / Отказ в доступе к файлам в каталоге с php

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

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

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

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

благодаря!

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

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

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

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

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

  • Отправка правильного размера файла с помощью скрипта загрузки PHP
  • Возобновляемые загрузки при использовании PHP для отправки файла?
  • принудительная загрузка файла с помощью php

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