【发布时间】:2015-07-06 03:42:25
【问题描述】:
我一直在寻找,但找不到可以帮助我的好答案。为了解释这种情况,我正在创建一个具有多人系统的 Unity3D 游戏。
为了尽可能保证玩家数据的安全(这样人们就不会轻易作弊),我决定实现一个连接到 SQL Server 数据库的 Web API 2 服务。
我设计 Web 服务的方式是,只有当请求包含特定数据时才会处理请求。
我现在遇到的问题是设计一个解决方案,让我可以从 Web 发送/检索数据服务。
我实现了 SHA-512 来发送密码,因此数据包嗅探器无法以纯文本形式获取它,并且我计划实现 HTTPS,但 Unity 类使其变得非常困难。我曾想过将 RijdnaelManaged 实现为一种更安全的帐户算法,但在 Unity 中,代码很容易进行逆向工程。
这种模型是否足够安全,可以阻止脚本小子入侵玩家帐户?
【问题讨论】:
-
除非您为用户实施登录机制,否则加密/https 等将无法解决您的问题。您应该将关键数据存储在服务器上(每个用户),而不是信任从客户端发送的数据(代表点、级别等)。
-
@EZI 已经实现了登录系统。开始游戏后,用户必须登录或创建帐户
-
那你只能将用户的action发送到服务器,不能发送客户端的state。
-
@EZI,如果我不信任用户发送给我的内容,我将如何获得用户的持续进度?
-
假设您的游戏使用箭头键移动,您可以将移动(不一定是每个移动)发布到服务器,以计算其在地图上的位置。 (当我说 “不信任客户” 我的意思是不要尝试它的
state就像 “我在 10 级” 或 “我有那么多钱”)
标签: c# security asp.net-web-api unity3d