我正在为流行的Minecraft服务器软件Bukkit编写一个插件。
我的插件需要将玩家分数发送到我的服务器,以制定全球排行榜。
看到Java可以被反编译,有人可以反编译插件,并找出它是如何工作的(无论如何都是开源的)。我正在寻找一种向我的服务器发送数据的方法(玩家得分),这样就不会被欺骗,排行榜也无法操纵。
我正在考虑让插件的用户(服务器所有者)注册到排行榜网站,然后使用他们自己的用户名/密码组合连接到我的排行榜。如果它被滥用,我可以简单地从排行榜中阻止该服务器。然而,这不是最有效的方法,因为我必须管理连接并批准杀戮量。
我如何确保客户端(Bukkit服务器插件)不能欺骗杀人?
答案 0 :(得分:3)
如果您担心合法用户受过足够的教育以反编译您的jar,了解您的代码并弄清楚如何从您的插件发送错误的数据,那么身份验证方法是没有用的(用户)已经合法了)我假设计算你想要的东西的逻辑不能驻留在服务器中。在这种情况下,最好的选择是混淆代码
答案 1 :(得分:1)
让它成为开源是阻止你的原因。如果它是封闭源代码,你可能会混淆你的jar,并且反编译你的代码会更加困难。
如果您仍然希望它是开源的,那么您可以关注快速增长的服务器或非常高分的服务器。但就像你说的那样,效率非常低。
在Bukkit论坛上发帖,他们可能会有更好的答案。