在我们的应用中,我们希望用户上传文件。
我们需要某种存储桶,因为我们不想将文件直接存储在数据库中。 我们将上传文件并通过数据库中的链接/id 链接它。
不过滤对文件的访问是否安全,因为链接/ID 可能很长,并且只有有权访问数据库行/文档的人员才知道强> t 是安全的。 假设存储桶存储不可迭代。
最佳答案
我想说的是,这根本不安全。如果您的数据库遭到破坏并且整个数据被某人窃取怎么办?或者有一天,有人将对象 URL 粘贴到 Google 搜索中,然后 Google 将该 URL 编入索引。
您应该将文件保密地保存在您的存储桶中。
如果您使用的是 AWS S3。有一个称为预签名 URL 的功能。您可以通过使用对象所有者的安全凭证创建预签名 URL 来授予下载对象的限时权限,从而与其他人共享对象。
系统设计流程如下:
经过身份验证的用户从前端向后端请求存储的文件 -> 后端使用对象所有者凭证生成预签名 URL -> 将 URL 返回给前端 -> 前端使用该 URL 访问私有(private)文件
希望这对您有帮助。
关于database - 存储具有公共(public)链接但 ID 很长的用户文件是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73385216/