我正在编写游戏客户端/服务器。我使用Artemis-odb和Netty来处理实体和网络。从数据库中为每个注册的播放器分配一个自动增量ID。每个客户端/服务器事件都会关联此ID。
我想阻止客户端轻松进行ID欺骗以阻止帐户劫持。从理论上讲,防止这种情况的最佳做法是什么?
游戏/客户端不使用UUID,但如果这是最好的选择。
谢谢!
答案 0 :(得分:1)
播放器ID应该与该播放器的网络连接上下文相关联(如果您使用TCP,则为套接字,如果是UDP,则为IP:PORT对,如果为UDP)。
客户端永远不需要将ID发送回服务器,因为服务器应该知道ID是什么。只要服务器可以将传入的网络数据包与播放器的上下文相关联,就没有欺骗的实际风险,尽管我认为UDP的风险可能会高一些。但是,只要您在数据包中包含序列号,就不太可能实际利用。
我知道没有主要的网络游戏实际上使用完整的UUID作为客户端 - 服务器协议中的播放器标识符。