所以基本上,我有一个游戏客户端和一个游戏服务器。

游戏客户端连接到服务器,并将其Steam ID发送到服务器。

游戏服务器会看到这是一个新的Steam ID,因此它将进行一行并将玩家信息(ip,名称,steam ID)添加到玩家表中。

游戏服务器可以通过Steam ID禁止玩家。因此,下次玩家连接时,服务器会在表中检查其Steam ID。如果找到一个并且Steam ID被禁止,请断开播放器的连接。

游戏服务器知道玩家的Steam ID的唯一方法是让玩家使用Steam API并通过与Steam进行的会话来获取他的Steam ID,然后将其作为字符串发送给Game Server。

但是,我有一个问题。仅发送Steam ID并不安全,因为被禁止的玩家可以将发送到服务器的数据包修改为另一个Steam ID,从而“取消禁止”它们。

我可以通过哪种安全方式将诸如Steam ID字符串之类的内容发送到游戏服务器,并让服务器告知是否修改了它,或者是否按照游戏客户端的意图发送了它?

我的游戏客户端使用Game Maker:Studio,而我的游戏服务器使用C ++。

PS:我之前提过一个问题,但描述性不够,所以我做了一个新问题。

最佳答案

在不知道您要问的确切内容的情况下,这里有一些假想……

我希望客户端首先与服务器进行“握手”,在服务器上接收“每日盐”(每天生成的32字节哈希)。然后,客户端将使用该盐,对客户端上的steam_id进行加密,然后将数据传输到服务器,然后服务器将对其解密并针对您的纯文本数据库进行验证。

但是请记住,对于您实际上进行的尽可能多的加密,某个地方的某个人最终将破解您的代码,并能够破坏您最好的安全防御措施。

编辑

这是LINK W/ SOURCE CODE,描述了字符串的简单加密。现在代码在C#中,但是我相信可以轻松地将其转换为C ++。

关于c++ - 通过Game Client进行C++ Steam ID身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30809671/

10-12 23:50