我正在为基于JavaScript的游戏构建服务器端API和客户端库,其中必须保护两个非常重要的功能。
- 每次玩耗费用户一定数量的积分
- 我们必须确保提交的得分是玩家实际获得的得分。
解决第一个问题似乎很简单;在每次玩耗费前,我们调用API,扣除用户账户并返回唯一的Play ID。当我们提交该次玩耗费的得分时,我们传递在开头发放的ID。
第二个问题让我有点困惑。最初,我考虑了基于ID和得分的客户端哈希算法,但很快意识到生成哈希的Javascript可以轻松地被反向工程,即使它被混淆过。此时,我考虑使用一个小型Flash组件来生成哈希,但我听说即使编译的Flash也可以被反编译。
为了增加背景信息,我计划使用Ruby构建服务器端API。
我很想听听Stack Overflow聪明的程序员提供的任何建议。感谢您的时间!
编辑:下面Homer6的答案对于更复杂的游戏来说是一个非常好的解决方案,但不幸的是这个游戏的简单性不值得采用那种方法。它是一个基于短时间玩耗费的游戏,因此得分只是完成一个级别所需的时间。