Контроль доступа к папкам и файлам в приложении файлового сервера - PullRequest
0 голосов
/ 25 сентября 2018

Введение

Меня интересует информация о рекомендациях о том, как организовать сложный доступ пользователей к папкам и файлам в приложении файлового сервера, который пишется с использованием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 или другие.Было бы более безопасно размещать файлы в хранилище этих служб и контролировать доступ к этим файлам в приложении файлового сервера.Плюсом будет доступность и бесперебойное резервное копирование, предоставляемое этими услугами.

...