据我所知,Firebase 存储中没有可以限制每个用户下载数量的安全规则。
我可以使用这样的简单技巧来限制文件大小或写入的文件数量:
match /public/{userId}/{imageId} {
allow write: if request.resource.size < 5 * 1024 * 1024 &&
imageId.matches("[1-5]\.txt");
}
并根据Google 配额和限制 https://cloud.google.com/storage/quotas:
每个对象的更新限制为每秒一次,因此对单个对象的快速写入将无法扩展。
所以这很棒但是一旦恶意用户知道下载链接,如何防止过多的读取?这对于安全性尤其重要,因为根据Google 配额和限制 https://cloud.google.com/storage/quotas:
对象的读取没有限制。存储桶最初支持每秒大约 5000 次读取,然后根据需要进行扩展。
没有用于限制 Cloud Storage 中存储的文件下载量的配置。如果用户有权读取任何数据,他们就可以随心所欲地读取数据。没有与每个用户消耗的数据量或文件访问次数相关的统计。没有安全规则可以让您以这种方式限制访问。没有 Cloud Functions 触发器可以让您自己进行记账。
上传限制的文档与您想要执行的操作无关。可扩展性的限制仅与底层系统的性能有关,与最终用户的权限无关。
如果您想限制最终用户可以执行的操作,则需要通过您构建的一些中间件组件来路由他们,该组件跟踪他们如何使用您提供的 API 下载文件,并根据他们之前的行为限制他们可以执行的操作。这显然实施起来并不简单,但它是可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)