Java 代码,安全

标签 java security exe

我正在创建一个与服务器(我编程的)通信的客户端程序。我正在为自己制作一个小游戏,我在其中掷骰子,服务器也这样做。谁获得的数字越高,谁就获胜。然而,在我的代码中,当用户按下按钮时,我发送服务器命令,然后服务器通过发回其滚动的内容进行响应,以便可以在 GUI 窗口中显示它。但是,我发现这是一种非常不安全的方法。例如,一个人可以简单地反编译 jar 文件,并使其总是滚动 12。由于两个滚动在一起的唯一地方(用户和服务器)是用户屏幕,我必须评估游戏从客户端来看,显然不是很安全。我正在努力让我的游戏更加安全,并找到了 2 个选项。

  1. 混淆器

    • 除非有人知道一个非常容易使用的工具,否则我无法弄清楚如何设置它们中的任何一个,因为它们很少附带一个我可以轻松地将我的 .jar 文件“弹出”到其中的 GUI
  2. 绑定(bind)到 .exe

    • 老实说,我不知道这有多安全。在某些程序中,我可以将两个东西(主要是为了制作病毒,而我显然没有这样做)“绑定(bind)”到一个 .exe 文件中。我可以将 .jar 绑定(bind)到 .exe,但我仍然不知道 .exe 是否可以反编译回 .jar 文件,并从那里反编译回 .java 代码。

顺便说一句,另一个安全问题是它从我的 IP 地址连接到服务器(我不希望客户端用户知道)

最佳答案

永远不要相信客户的输入。

唯一真正“安全”的方法是让服务器生成自己的卷和客户端的卷。

当然,如果掷骰子比较的结果没有超出用户所看到的影响(换句话说,客户不会报告谁赢了),那么真的,谁在乎呢?我可以修补纸牌让我总是赢,但这并不好玩。

关于Java 代码,安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857713/

相关文章:

linux - 阻止所有内部流量,除了来自单个端口上特定 IP 的传入流量

java - 下载并替换java中正在运行的可执行文件

java - Java 程序中的二维数组

java - 为什么 Apache-Commons-Math 库中的 BigFraction 类返回不正确的除法结果?

security - WebSockets身份验证

asp.net-mvc - ASP.NET MVC 路由 - 您是否在 URL 中公开 ID?

linux - 如何在 Ubuntu 的代码块中生成 .out?

python - .exe去其他地方后消失了

Android 中的 java 泛型

java - java中的慢速 map