对文件服务器应用程序中的文件夹和文件的访问控制

时间:2018-09-25 12:32:26

标签: php symfony permissions tree access-control

简介

我对有关最佳做法的信息感兴趣,该信息有关如何组织 complex 用户访问使用Symfony4 framework编写的文件服务器应用程序中的文件夹和文件的信息

示例

project
-- folder1
---- file1.1
---- file1.2
-- folder2
---- folder3
------ file3.1
---- file2.2
---- file2.2
---- file2.2

如果在用户必须访问folder1folder3 但不是 folder2时有用例怎么办?

在这种情况下,文件夹文件树坏了(因为folder2被禁止访问)!

想法1

有一种想法:一次只允许访问一个子树(及其所有子节点)。

想法2

控制对文件夹文件树的第二级子树(例如,它们是folder1folder2)的访问。提供读取(查看/下载)和写入(删除/上传)权限。与idea 1中的内容相同-如果用户有权访问子树根文件夹(folder1folder2),那么他也有权访问其所有子对象。

问题

在组织文件服务器应用程序中的文件访问时,best practices是什么?

更新1

在树中显示禁止访问的文件夹是有问题的,因为这可能会将不必要的信息转移给恶意行为者。

更新2

添加了Idea 2

更新3

此外-在Idea 2的情况下,返回子树的查询存在问题。在idea 1中只有一个子树,因此-获取所有子元素只是一个查询。但是在Idea 2的情况下,每个子树都有一个查询!并且需要将结果合并到一棵树中……这可能是有问题的!

更新4

我知道voters的存在。我在以前的项目中没有使用过它们。这可能是利用它们的绝佳机会。

更新5

Symfony Devs的{​​{1}}聊天中-Slack指出,最好使用gerryvdmAmazon Web Services S3,{{1 }}或其他。将文件放到那些服务中的存储上并控制对文件服务器应用程序中那些文件的访问会更加安全。这些服务将提供可用性和无缝备份。

0 个答案:

没有答案