我正在考虑将Firebase用于使用Unity3D开发的手机游戏。我担心的是,与Web应用程序相反,代码将在客户端上。
是什么阻止恶意用户向Firebase发出大量呼叫并破坏我们的帐户限额,或者更糟糕地提高我们的账单?
我知道运行自己的服务器在很多方面都比较好,但是我现在没有资源或知识可以自己运行它。我也喜欢Firebase的功能,并相信Google以某种我不知道的方式解决了这个问题。
答案 0 :(得分:1)
就像大多数需要API密钥的API(例如Google Map)一样,您不应该让用户直接与其通信。
您需要拥有自己的服务器,并让每个用户创建用户名和密码。用户必须登录到您的服务器才能使用需要付款的Firebase功能。当他们登录到您的服务器时,您的服务器将负责发出请求并将请求结果发送回Unity应用程序。 Unity应用程序向您的服务器发出请求,您的服务器检查该帐户是否已达到限制,然后决定发出实际请求并返回结果。
通过服务器发出请求,您将能够对每个帐户实施限制。这样,您就可以对IP地址进行限制,并确保在达到限制时,不会从同一IP中创建或使用新帐户来规避服务器限制。
编辑:
以上答案仍适用于许多其他需要API密钥的API。幸运的是,Firebase具有名为“ Firebase安全规则” 的功能,在您的情况下这可能很有用。您可以使用“ Firebase安全规则” 创建一个限速规则,每次有请求时,您都可以检查时间戳,然后使用请求的当前时间更新数据库。这样,您可以每分钟执行1个请求。