保护API不被滥用

时间:2014-06-13 02:05:00

标签: javascript html5 api

我创建了一个游戏API,该API将由完全客户端javascript + html5应用程序使用,该应用程序位于不同的域中。

我设法解决所有CORS问题并且工作正常。

该API有一种提交用户分数的方法。用户完成游戏后,javascript应用程序会将最终得分提交给API。

但问题是这样做是否安全?因为某些用户可能会滥用API将伪分数发送到服务器。

另一方面,创建完全客户端的Web应用程序以生成分数是否安全?

先谢谢

1 个答案:

答案 0 :(得分:0)

无法保证完全在客户端运行的游戏的简单“提交分数”API;考虑游戏公司花费在试图“保护”他们的游戏以防止侵犯版权的总和,但这些保护措施经常被搁置一旁。

如果游戏核心具有足够的确定性,您可以通过让客户提交其行动的记录然后处理该记录(重新运行游戏核心服务器端)来确定实际分数来解决问题。作为奖励,您也可以让其他玩家观看高分者游戏的重播:让他们下载成绩单并使用成绩单重新运行游戏核心而不是现场玩家输入(并标记明显的奶酪你的主持人,自然而然。)

如果游戏在很大程度上依赖于隐藏的信息(例如面朝下或未经堆叠的卡片),则需要将这些信息完全保留在客户端的计算机上,并在玩家发现它们时使用API​​调用来揭示内容。否则,当遇到困境时,玩家可以“神奇地”做出正确的决定。

如果游戏在很大程度上取决于玩家的灵活性,那么你就会成为一个装满污水的小溪:它最终会变成与在多人第一人称射击游戏中探测目标机器人,墙壁等等相同的问题。 arms race可与病毒/反病毒军备竞赛相媲美。