【问题标题】:How to prevent a web based game from being hacked? [closed]如何防止基于网络的游戏被黑客入侵? [关闭]
【发布时间】:2013-03-28 00:02:17
【问题描述】:

我需要构建一个基于网络 (html/js) 的游戏,用户可以在其中赚取/得分。在游戏结束时,用户在表单上输入他们的详细信息,然后将其连同他们的分数一起提交到服务器(通过 ajax post)以存储在数据库中。

有一个基于积分排名的排行榜和奖品元素。

我的问题是,如何防止用户破解此游戏?我认为有人可以使用浏览器的开发工具或 fiddler 之类的网络代理轻松更改发布到服务器的积分/分数值。奖品相当不错,因此值得有人花时间尝试破解它。

我正在寻找一个可靠的解决方案,而不仅仅是一些“让它更难破解”的答案

【问题讨论】:

  • 尝试使其部分成为服务器端
  • 鉴于可能的攻击向量数量不限,我看不出这个问题在问答环境中如何回答。
  • 如果游戏在客户端运行,没有真正的解决方案,只有默默无闻的安全。
  • SSL 不是这里的答案。我谈论的是在将数据发送到服务器之前对其进行黑客攻击。 (即在 ssl 加密之前)
  • @Robert Harvey:你是说因为没有答案而无法回答吗?没有解决办法?

标签: javascript asp.net web-applications security


【解决方案1】:

您需要编写一个函数,在整个游戏过程中将玩家动作发送到服务器。然后在服务器上,您需要检查移动是否可行。

您还需要在整个游戏过程中跟踪游戏得分,并在游戏结束时确保提交的值不会比您记录的值高很多。你应该允许一些宽容。

实际代码是非常特定于游戏的。

希望对你有帮助

【讨论】:

  • 这是有道理的。不过很复杂。
  • 我认为回合制策略游戏比实时游戏更简单。所以,是的,它非常依赖游戏。
【解决方案2】:

我不知道它是什么类型的游戏,但你可以添加一些东西来实现它,所以如果你在短时间内获得一定数量(除非黑客入侵,否则这是不可能的),你就无法进入高分。并使其成为服务器端。要进行分数限制,您可能会在每一步中创建一个函数,如果分数超过 1 步中能够获得的最大分数,那么它不允许您使用高分。

【讨论】:

  • 是的,速率限制。这是我想到的唯一可行的解​​决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 2015-10-08
  • 1970-01-01
相关资源
最近更新 更多