Введение
Меня интересует информация о рекомендациях о том, как организовать сложный доступ пользователей к папкам и файлам в приложении файлового сервера, который пишется с использованиемSymfony4 framework
.
Пример
project
-- folder1
---- file1.1
---- file1.2
-- folder2
---- folder3
------ file3.1
---- file2.2
---- file2.2
---- file2.2
Что если есть вариант использования, когда пользователь должен получить доступ к folder1
и folder3
, но не folder2
?
В этом сценарии разрыв файлов дерева папок (поскольку доступ запрещен для folder2
)!
Идея 1
Есть мысль: датьдоступ к только одному поддереву (и, следовательно, ко всем его дочерним элементам) одновременно.
Idea 2
Контроль доступа к поддеревам второго уровня (вНапример, они folder1
и folder2
) дерева папок.Предоставьте разрешения на чтение (просмотр / загрузка) и запись (удаление / загрузка).То же, что и в idea 1
- если у пользователя есть доступ к корневой папке поддерева (folder1
и folder2
), то он также имеет доступ ко всем дочерним объектам.
Вопрос
Чтоbest practices
предназначены для организации доступа к файлам в приложениях файлового сервера?
Обновление 1
Отображение папок, доступ к которым запрещен в дереве, проблематично, так как оно может передавать ненужную информацию злоумышленникам.
Обновление 2
Добавлено Idea 2
Обновление 3
Более того - в случае Idea 2
возникают проблемы с запросами, которые возвращают поддеревья.В idea 1
есть только одно поддерево, поэтому получение всех подэлементов - это всего лишь один запрос.Но в случае Idea 2
существует один запрос для каждого поддерева!И необходимо объединить результаты в одно дерево ... это может быть проблематично!
Обновление 4
Мне известно о существовании избирателей .Я не использовал их в своих предыдущих проектах.Это может быть идеальная возможность использовать их.
Обновление 5
В Symfony Devs
чате на Slack
- gerryvdm
отметили, что может быть хорошей идеей использовать провайдеров хранения, таких какAmazon Web Services S3
, Google Drive
, Dropbox
или другие.Было бы более безопасно размещать файлы в хранилище этих служб и контролировать доступ к этим файлам в приложении файлового сервера.Плюсом будет доступность и бесперебойное резервное копирование, предоставляемое этими услугами.