我对有关最佳做法的信息感兴趣,该信息有关如何组织 complex 用户访问使用Symfony4 framework
编写的文件服务器应用程序中的文件夹和文件的信息
project
-- folder1
---- file1.1
---- file1.2
-- folder2
---- folder3
------ file3.1
---- file2.2
---- file2.2
---- file2.2
如果在用户必须访问folder1
和folder3
但不是 folder2
时有用例怎么办?
在这种情况下,文件夹文件树坏了(因为folder2
被禁止访问)!
有一种想法:一次只允许访问一个子树(及其所有子节点)。
控制对文件夹文件树的第二级子树(例如,它们是folder1
和folder2
)的访问。提供读取(查看/下载)和写入(删除/上传)权限。与idea 1
中的内容相同-如果用户有权访问子树根文件夹(folder1
和folder2
),那么他也有权访问其所有子对象。
在组织文件服务器应用程序中的文件访问时,best practices
是什么?
在树中显示禁止访问的文件夹是有问题的,因为这可能会将不必要的信息转移给恶意行为者。
添加了Idea 2
此外-在Idea 2
的情况下,返回子树的查询存在问题。在idea 1
中只有一个子树,因此-获取所有子元素只是一个查询。但是在Idea 2
的情况下,每个子树都有一个查询!并且需要将结果合并到一棵树中……这可能是有问题的!
我知道voters的存在。我在以前的项目中没有使用过它们。这可能是利用它们的绝佳机会。
在Symfony Devs
的{{1}}聊天中-Slack
指出,最好使用gerryvdm
,Amazon Web Services S3
,{{1 }}或其他。将文件放到那些服务中的存储上并控制对文件服务器应用程序中那些文件的访问会更加安全。这些服务将提供可用性和无缝备份。