javascript - 基于浏览器的在线游戏的安全注意事项
问题描述
我想获得一些关于基于浏览器的游戏安全性的信息或至少要研究的领域。
我是这个开发领域的新手,我正在使用 MEAN 堆栈并具有服务器端安全性的基本知识,但我正在寻找正确的方法和程序来专注于我的游戏研究。
据我了解,在将更改发送回客户端之前,我需要将游戏类和数据作为服务器端进行大量验证,但这是我的知识停止的地方。我一直在研究这个主题,发现我能够找到有关一般视频游戏安全性的信息,但不能找到与浏览器游戏相关的信息。
我的问题是我需要为在线回合制浏览器游戏做哪些安全考虑。
解决方案
您需要假设客户对您撒谎。在一切。
您需要再次猜测客户发送给您的所有内容。
例如:假设国际象棋客户端向您发送“黑棋手想将他的车 A1 移动到 A4”
你需要确保
- 发这个的人居然是黑玩家。
- 轮到他们了。
- A1 上有一个车,它是黑色的。
- 一个车实际上被允许移动 A1 到 A4(在这种情况下是的,如果它是一个主教怎么办?)
- A2 和 A3 上什么都没有,如果 A4 被占用,它就是一个白色的棋子。
- 通过放弃A1,黑王没有被白棋吃掉的危险
现在,一个好的用户界面会在客户端检查所有这些。用户会期待这一点。但是尽管进行了所有这些检查,客户最终仍然可以对您撒谎。因为一旦您的代码被传输到客户端计算机,另一端的玩家可以将其更改为他们喜欢的任何内容。
所以请记住游戏安全的第一条法则:客户端掌握在敌人手中。
推荐阅读
- asp.net-mvc-4 - 如何将图像从我们的应用程序发布到linkedin post?在 c# 或 javascript 中
- swift - 互联网不可用时无法播放下载的 HLS 内容
- c++ - Protobuf 中的 ParseFromArray 和 ParseFromString 有什么区别?
- mule - mule4 批处理 - 如何向 http 侦听器发送完整阶段响应?
- sql - 需要 Equi 连接 l_employees 表和 l_employees 表(RECURSION SQL)
- node.js - create-react-app 无法启动脚本后
- debugging - F# 可变列表返回一个错误,指出它不可变
- javascript - 在同构 React 应用程序中减少 FID(首次输入延迟)的好方法有哪些?
- android - android textview 鼠标指针
- security - 使用 crypto/* 后安全归零缓冲区