【问题标题】:Firebase Security rule to restrict up to some characters of a stringFirebase 安全规则,最多限制字符串的某些字符
【发布时间】:2013-05-11 07:23:34
【问题描述】:

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

如果尝试使用字符串的 length 属性在安全规则中进行验证,我将得到 无效的属性访问:目标不是对象

【问题讨论】:

    标签: firebase firebase-security


    【解决方案1】:

    Firebase 安全规则现在支持字符串的 length 属性,以及其他几种字符串方法,包括 replace()contains()toUpperCase()toLowerCase() 等。

    更多信息请参见https://firebase.google.com/docs/reference/security/database/#string_properties

    【讨论】:

    • 链接已损坏。
    • @IvanRubinson 已修复!
    【解决方案2】:

    The syntax you can use in rules are detailed here.

    很遗憾,目前无法执行字符串操作(匹配、长度等)。 请参阅下面 ROB 的回答,此功能现已可用

    我知道这至少在 Firebase 雷达上,因为我前段时间要求提供类似功能。

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

    使用特权应用

    使用特权应用程序监控 Firebase,每当将值写入您需要进行字符串验证的特定字段时,手动检查并在无效时将其删除。

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

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

    将写入委托给 API

    与其让客户端写入特权数据,不如将其发送到 API 并让 API 写入该数据——使其只读给客户端。

    别担心

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

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

    【讨论】:

    • 谢谢,我只是想限制字符串的某些字符。我直接从客户端将数据保存到firebase。我只需要安全规则中的字符串操作“length”。
    • 是的,安全规则中还没有长度:)
    猜你喜欢
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多