Firebase安全规则限制字符串的某些字符

Ash*_*hok 4 firebase firebase-security

如何限制用户保存超出某个限制的字符串?

我获得了无效的属性访问:如果尝试在具有字符串的length属性的安全规则中进行验证,则target不是对象.

Rob*_*rco 6

在火力地堡安全规则现在支持一个length字符串属性,以及其他一些字符串方法包括replace(),contains(),toUpperCase(),toLowerCase(),等.

有关详细信息,请参阅https://firebase.google.com/docs/reference/security/database/#string_properties.


Kat*_*ato 3

此处详细介绍了您可以在规则中使用的语法。

不幸的是,目前无法执行字符串操作(匹配、长度等)。 请参阅下面 Rob 的回答,此功能现已推出

我知道这至少在 Firebase 雷达上是存在的,因为我前段时间请求了类似的功能。

如果你解释了你想要解决的问题的具体细节,就会得到更具体的答案;现在我将给你一些一般性的想法。

使用特权应用程序

使用特权应用程序监控 Firebase,每当将值写入需要字符串验证的特定字段时,请手动检查它,如果无效则将其删除。

当然,客户端验证将处理所有有效的用例。所以这只是为了防止恶意插入。

或者,您可以将其更多地视为审核。只需将任何无效字符串通过电子邮件发送到某个地址即可进行审核。由于客户端将在插入之前确保字符串有效,因此您再次只是查看错误或恶意行为。

委托写入 API

不要让客户端写入特权数据,而是将其发送到 API 并让 API 写入该数据 - 使其对客户端只读。

别担心

您真的需要验证长度吗?仅仅查看它是否是一个字符串就足够了吗?真的有人会“破解”字符串的内容吗?可能不会。可能是,但也可能不是。

如果这是一个问题,是否可以通过其他途径解决?如果涉及到服务器,只需使用上面概述的过程即可。