如何限制 Firebase 存储的下载数量?

2024-04-28

据我所知,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(使用前将#替换为@)

如何限制 Firebase 存储的下载数量? 的相关文章

随机推荐

  • 如何调试 iOS 应用程序在启动时崩溃,仅在程序集文件中设置断点

    我遇到了当前正在开发的应用程序的问题 问题是应用程序在启动时在后台运行一段时间后崩溃 并且仅在这种情况下 在应用程序被杀死时启动应用程序不会导致调试器或手机崩溃 无论是否进行调试 在后台启动应用程序大约 5 10 分钟都不会导致崩溃 在后台
  • 以编程方式设置 Swift 元素的位置

    我在故事板中定义了一个标签 我正在尝试以编程方式更改其位置 SO 上已有一些问题似乎可以解决此问题 但似乎没有一个解决方案有效 即标签不移动 我已经删除了标签上所有现有的限制 但无济于事 我试过了 class LandingViewCont
  • 使用 Prism 在 Xamarin Forms 的后台服务中实现依赖注入

    我在我的 xamarin 表单项目中使用 Prism 我能够在我的视图模型中使用依赖注入 构造函数注入 没有任何问题 我还利用后台服务在后台推送长时间运行的任务 如何做我在后台服务中注入依赖项 当我尝试将接口对象作为参数传递给构造函数 Sy
  • CSV 实际上是....分号分隔值...(在 AZERTY 上导出 Excel)

    我在这里有点困惑 当我使用 Excel 2003 将工作表导出为 CSV 时 它实际上使用分号 Col1 Col2 Col3 shfdh dfhdsfhd fdhsdfh dgsgsd hdfhd hdsfhdfsh 现在 当我使用 Mic
  • 比 O(n) 更好的范围交集算法?

    范围交集是一个简单但不平凡的问题 已经回答过两次了 查找数字范围交集 https stackoverflow com questions 224878 find number range intersection 比较日期范围 https
  • 如何正确离开临界区?

    我有以下 C 代码 我在其中使用临界区对象 https msdn microsoft com en us library windows desktop ms682530 v vs 85 aspx EnterCriticalSection
  • mapFragment.getMapAsync 处的 NullPointerException

    在解决了与我的标题相关的问题后 我找不到问题的解决方案 我有一个NullPointerException at mapFragment getMapAsync 下面是我的MapActivity code package com exampl
  • 如何覆盖magento中的管理模板文件?

    我需要覆盖 adminhtml sales order create items grid phtml 文件 以在从管理员创建新订单时在每个项目下显示一些自定义文本 我希望通过自定义模块来完成此操作 任何人都可以建议如何覆盖管理模板文件 非
  • JUnit 测试 Spymemcached 客户端

    我有一个类围绕spymemcached 客户端 我想编写一些JUnit 测试来测试getValue 和addKey 方法是否有效 问题是无法从测试服务器访问spymemcached 服务器 所以我想这里需要一些模拟 我的简化类看起来像这样
  • 如何在 Apache POI 中获取 Excel 空白单元格值?

    我有一个巨大的 Excel 文件 其中包含大量列 如下所示 Column1 Column2 Column3 Column4 Column5 abc def ghi mno pqr 这是我编写的用于打印这些值的代码 try FileInput
  • 使用 ODBC 从理货中提取日账簿/交易数据

    我能够使用 Microsoft SQL 查询成功将 Excel 连接到 Tally ODBC 服务器 我现在想将整个历史记录的所有交易数据提取到 Excel 中 包括借方和贷方分类帐 就像在日记本中一样 但是 如果我使用提取CompanyV
  • 输出参数有什么问题?

    在 SQL 和 C 中 我从来都不太喜欢输出参数 我也从未在 VB6 中通过 ByRef 传递参数 依靠副作用来完成某件事只会让我烦恼 我知道它们是一种解决无法从函数返回多个结果的方法 但 SQL 中的行集或 C 和 VB 中的复杂数据类型
  • Woocommerce 根据购物车中的商品总数累进额外费用

    我正在寻找一些代码 可以根据购物车中的商品总数收取额外费用 例如 如果购物车中的商品数量 gt 6 gt 额外费用 5 如果购物车中的商品数量 gt 12 gt 额外费用 10 我努力了这段代码 https stackoverflow co
  • 免费 JqGrid - 网格不刷新

    我有一个组合框 当选择更改时 关联的网格将重新填充新数据 div class container fluid div class row div class col md 4 div div div
  • F# 中使用抽象类还是接口?

    从 C 背景开始摸索 F 在 C 中 决定何时使用接口和何时使用抽象类有明显的区别 在 F 中 我发现两者几乎合而为一 我知道 就 CLR 而言 F 中的做法与 C 中的做法相同 但是在 F 中编程时使用的 最佳实践 是什么 我应该完全避免
  • 使用 CSS 实现等高元素

    我读到了几种不同的解决方案来模拟等高的列或元素 但没有一个真正引起我的注意 因为它们使用了 hack 极其复杂的 HTML 布局或未得到广泛支持的属性 这是例子Fiddle http jsfiddle net weppos satgw 我的
  • Smarty -“无法写入文件... templates_c”。 (smarty_internal_write_file.php:44)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是第一次使用 Smarty 它在我的笔记本电脑 MAMP 上运行良好 但是当我尝试在生产服务器 Windows 上运行基本模板时 我收到
  • 以编程方式设置 mosquitto 中的访问控制限制

    我正在开发一个将使用 mqtt 的应用程序 我将使用 python 库 我一直倾向于使用 mosquitto 但找不到以编程方式为其设置访问控制限制的方法 我正在编写的应用程序需要能够区分用户 并且只允许他们订阅某些主题 当前的解决方案看起
  • (定义一个宏)方便OpenGL命令调试?

    有时插入条件打印和检查需要很长时间glGetError 使用二分搜索的形式来缩小范围 其中第一个函数调用是 OpenGL 首先报告错误 我认为如果有一种方法可以构建一个宏 我可以包装所有可能失败的 GL 调用 并有条件地调用 那就太酷了gl
  • 如何限制 Firebase 存储的下载数量?

    据我所知 Firebase 存储中没有可以限制每个用户下载数量的安全规则 我可以使用这样的简单技巧来限制文件大小或写入的文件数量 match public userId imageId allow write if request reso