首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保护浏览器游戏中的http事务

保护浏览器游戏中的http事务
EN

Stack Overflow用户
提问于 2012-11-21 23:25:03
回答 2查看 123关注 0票数 1

我想建立一个系统,其中许多人可以玩基于浏览器的简单(swf或html5)的游戏(如蛇,赛车,路德等)。这些游戏将非常简单,不需要在服务器中编写逻辑。得分最高的人将赢得一些奖品。

现在的问题是确保工作流程的安全。我的方法可能是不正确的,请随时提出任何替代方案。

  1. 当游戏开始时,a游戏id是generated.
  2. When游戏结束,
    1. 和游戏id被发回。

问题是,步骤2可能会被欺骗。任何人都可以发送类似的http请求,带有生成的游戏id和任何分数。我怎么知道分数是来自我的游戏,而不是直接发送的。

我想过对分数进行加密,但加密机制在javascript中仍然存在,可以很容易地复制。

请帮助,提前谢谢。

编辑1:我不担心嗅探器,会话劫持,中间人攻击。HTTPS会解决所有这些问题。我担心的是用户本身。他只需在浏览器中右键单击> inspect,然后检查正在发送的请求头。他可以很容易地重放相同的请求头(只需右键单击并在新选项卡中打开)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-22 21:43:09

您可以添加提交签名/编码层以模糊数据,并添加JS代码混淆以使用户更难撤消该级别的保护。

但最终你不能解决这个问题。您将以预期的方式运行代码的信任放在一个不受信任的客户端,这自然会产生不受信任的输出。伪造分数只是一个入口点-攻击者可以很容易地篡改客户端游戏逻辑的其他部分来作弊。

信任客户端是一个长期存在的安全问题,几乎没有可能的解决方案。对于一个没有人关心的微不足道的高分数表,你可以通过大量的混淆来防止偶然的攻击者,再加上手动监控和修剪明显具有欺诈性的提交。

如果你正在考虑提供真正想要的奖品,你可能需要将游戏的一些重要部分移到你控制的服务器上。您需要保护哪些部分以及如何保护高度依赖于游戏,并且可能存在难以防御的残余攻击。(例如,考虑一下基于服务器的商业多人游戏试图防御客户端黑客攻击的长度。)

票数 1
EN

Stack Overflow用户

发布于 2012-11-22 04:29:55

我猜这取决于数据的价值,但听起来价值很低。

选择一个功能上无法猜测的ID。例如,一个GUID (128位随机生成的值)。如果有人猜到了,他们就能猜到了。但从统计学上讲,他们永远都不可能把它做对。如果你通过HTTPS发送,他们就不能闻出来(我会通过HTTPS发送,只是因为)。

如果你想做得更好,你可以随机选择一个密码,但我质疑数学是否支持这一点是必要的。听起来你的数据价值低得离谱。这真的很重要吗?

顺便说一句,我最担心的是那个决定DoS你的人,他要求你为根本不存在的游戏存储大量的数据……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13496436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档