我正在制作一个 Minecraft 控制面板,成员可以在其中在我们的服务器上运行他们自己的 jar 文件,这可能会对我们的设备造成潜在的破坏性后果。
我想设置一个 jar 文件(我编码 java)作为安全管理器。我想这样做,这样我就可以阻止一些操作,例如只有 1 个套接字对应 1 个 IP,因此他们不会使用它来执行拒绝服务攻击。
我知道有一个 java.policy 文件,但这不够“智能”,无法让您执行我想做的一些操作。
我知道您可以覆盖安全管理器,但随后该类将在同一个 JVM 中加载,并且另一个恶意代码可能会覆盖该管理器。
我向您提出的问题是,如何制作一个其他人的代码无法干扰的安全管理器。
最佳答案
I know there is a java.policy file, but this isnt "smart" enough to allow you to do some of the operations I would like to do.
如果您可以控制命令行,只需指定 java -Djava.security.manager ...
。如果您无法控制命令行,请控制它。或者控制 JVM 并调用 System.setSecurityManager(new SecurityManager());
在执行其他操作(例如运行客户端 JAR 文件)之前。
I know you can override the security manager, but then the class would be loaded within the same JVM and another malicious code could override this manager.
不知道这意味着什么。安全管理器一旦安装就无法更换。
关于Java安全管理器: Specify Jar File in JVM Args,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27009286/