我一直在为我的某个游戏使用Firebase,虽然它是一个非常有用的服务和工具,但碰巧遇到了一个问题,我在开发过程中没有解决这个问题,导致用户作弊。
正如您所期望的,Firebase在客户端引入了大部分逻辑,我已经实施了客户端授权,从一开始就是一个错误。我遇到的问题如下。请注意,这不是我的结构,只是一个工作的例子。
{
"user":
{
currently_training: false,
current_units: 673,
unit_cap: 1000
}
}
客户端会接受并告诉用户,“好吧,您只能训练(1000 - 673) = 327
个单位。但是,在客户端绕过这个以更改unit_cap,可以说{{1}用户现在可以向数据库发送请求以创建10,000
单位,这将导致他的单位超过他的单位上限。
我如何验证查询,例如..
9,327
我非常担心需要创建一个中间件服务器,这就是我开始使用firebase的原因。 (所以我不必担心我自己的服务器的可扩展性)