gpt4 book ai didi

通过游戏客户端的 C++ Steam ID 身份验证

转载 作者:行者123 更新时间:2023-11-28 06:13:17 25 4
gpt4 key购买 nike

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

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

游戏服务器看到这是一个新的 Steam ID,所以它创建一行并将玩家信息(ip、名称、steam id)添加到玩家表中。

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

游戏服务器知道玩家 Steam ID 的唯一方法是让玩家使用 Steam API 并通过与 Steam 建立的 session 检索他的 Steam ID,然后将其作为字符串发送到游戏服务器。

但是,我有一个问题。仅发送 Steam ID 并不安全,因为被封禁的玩家可以简单地将发往服务器的数据包修改为另一个 Steam ID,从而“解除封禁”。

什么是安全的方式,我可以向我的游戏服务器发送类似 Steam ID 字符串的内容,并让服务器告知它是否被修改或是否按游戏客户端的预期发送?

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

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

最佳答案

在不知道你要问的确切内容的情况下,这里有一些伪装的想法......

我会让客户端首先与服务器进行“握手”,在服务器上接收“salt-of-the-day”(每天生成的 32 字节散列)。然后,客户端将采用该盐,加密客户端上的 steam_id,并将该数据传输到服务器,然后服务器将解密它并根据您的明文数据库对其进行验证。

但请记住,无论您实际进行多少加密,某个地方的某个人最终都会破解您的代码并能够挫败您最好的安全防御措施。

编辑

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

关于通过游戏客户端的 C++ Steam ID 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30809671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com