【问题标题】:Can I send value with request to Firestore rules我可以通过请求向 Firestore 规则发送值吗
【发布时间】:2019-07-06 00:41:36
【问题描述】:

我必须发送带有请求的值以从 Firestore 规则中检查它,例如(Recaptcha 以避免垃圾邮件)或来源(保护我自己的 firebase api)!有什么办法吗?

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-security


    【解决方案1】:

    无法将自定义参数传递到 Firestore 规则中。最常见的解决方法是将信息作为路径的一部分传递,尽管有时它肯定很笨拙。

    防止垃圾邮件的最佳方法是要求您的用户登录,然后根据知道他们是谁以及知道他们过去做过什么来限制他们可以做的事情。例如,大多数应用程序会根据用户的身份限制用户可以写入的位置,并且许多应用程序都有一种分级系统,当用户使用(而不是滥用)应用程序的时间越长,用户就会逐渐获得更多权限。

    【讨论】:

    • 感谢您的回复,如何防止来自我的应用程序外部的任何 Http 请求!有什么办法吗!
    • 不。由于这些是云托管服务,因此原则上任何拥有配置数据的人都可以访问它们。如果您怀疑自己发现了安全规则无法阻止的严重滥用行为,请reach out to Firebase support 寻求个性化的故障排除帮助。
    • 所以对于这些问题的最佳解决方案,我应该使用 nodejs(作为服务器端)来处理 firebase 并保护我的 Http 请求,你的意见是什么
    • 是的,这完全有可能:您的应用程序中的任何数据都可以被您发送该应用程序的任何人找到。因此需要服务器端的安全规则。
    • 确实是这样。 Firebase 的安全规则在服务器上强制执行,这使得客户端无法绕过它们。我刚刚意识到我错过了一个选项,那就是add custom claims to the user's ID token。但此操作只能在受信任的环境中执行(例如您的开发机器、您控制的服务器或 Cloud Functions),因此可能不适用于您的用例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2015-12-06
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    相关资源
    最近更新 更多