我已经用Java设置了客户端/服务器。客户端当前(除了登录名/密码外,还通过套接字将计算出的值)传输到服务器以进行身份​​验证。

但是,目前没有任何方法可以阻止恶意反编译和重构的客户端连接,因为它所要做的就是发送相同的身份验证数据。

鉴于反编译揭示了我的客户端正在做的一切,是否真的有任何方法可以合理地防止来自已修改客户端的连接?在我看来,完成此操作的唯一方法是生成唯一的令牌,而修改后的客户端(具有相同的令牌生成逻辑)将无法以某种方式生成该令牌。

最佳答案

您不能真正避免假客户(看看专有软件/协议是如何反向工程的),但这没问题,因为您永远不应该信任客户:检查他提出的每个请求,以免他引起问题。如果这样做,即使是假客户也必须遵守您的规则,这根本不是问题。

无论如何,另一种方法是使所使用的协议变得模糊,以使其无法轻松反编译并且无法对协议进行逆向工程,但是某些人有能力破坏您所做的工作,这会让您感到惊讶。使您的代码晦涩难懂很少有好处,并且在大多数情况下会使您失去时间。

关于java - 防止来自非法客户端的连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23278288/

10-10 21:37
查看更多