【问题标题】:Security considerations with online browser-based games基于浏览器的在线游戏的安全注意事项
【发布时间】:2019-04-19 17:11:34
【问题描述】:

我想获得一些关于基于浏览器的游戏安全性的信息或至少要研究的领域。

我是这个开发领域的新手,我正在使用 MEAN 堆栈,并且具备服务器端安全方面的基本知识,但我正在寻找正确的方法和程序来专注于我的游戏研究。

据我所知,在将更改发送回客户端之前,我需要将游戏类和数据放在服务器端并进行大量验证,但这是我的知识停止的地方。我一直在研究这个主题,发现我能够找到有关一般视频游戏安全性的信息,但与浏览器游戏无关。

我的问题是我需要为在线回合制浏览器游戏做哪些安全考虑。

【问题讨论】:

    标签: javascript web browser mean


    【解决方案1】:

    您需要假设客户对您撒谎。在一切中。

    您需要再次猜测客户发送给您的所有内容。

    例如:假设国际象棋客户端向您发送“黑方想要将他的车 A1 移动到 A4”

    你需要确定

    • 发送这个的人实际上是黑人玩家。
    • 轮到他们了。
    • A1 上有一辆小车它是黑色的
    • 实际上允许车从 A1 移动到 A4(在这种情况下是的,如果它是主教怎么办?)
    • A2 和 A3 上什么都没有,如果 A4 被占用,它就是一个白色的棋子。
    • 放弃A1,黑王没有被白棋带走的危险

    现在,一个好的用户界面会在客户端检查所有这些。用户会期待这一点。 但是尽管进行了所有这些检查,客户最终仍可能对您撒谎。因为一旦您的代码被传输到客户端计算机,另一端的玩家可以将其更改为他们喜欢的任何内容。

    所以请记住游戏安全的第一定律:客户端掌握在敌人手中

    【讨论】:

    • 这是有道理的,所以您是说我应该对您在客户端提供的所有场景进行检查?那不是很危险,因为他们可以找到覆盖它们的方法吗?我忘了提到我正在使用网络套接字,每个游戏都在内存中运行。我也对防止更复杂的游戏问题更感兴趣,例如处理用户能够使用浏览器中的开发工具作弊或使用网络延迟来阻止其他玩家轮到他们
    • @user3366235 这正是我的观点:你不能。您的用户将能够按照他们的意愿操作前端,因此您需要确保您不依赖前端发送给您的内容。如果用户向您发送命令,确保它是有效的。没有具体的游戏,很难说具体的,但基本上检查双方的所有规则,客户端(为了方便和用户体验)和服务器(以确保没有人作弊)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2014-08-16
    相关资源
    最近更新 更多