是否可以在应用程序周围设置防火墙?
我想托管一款名为 Minecraft 的游戏,并让人们上传自己的 Java JAR。
现在我想将它们限制在某个端口范围内。
由于在虚拟机中运行所有 JVM 太过分了,我们只是将它们堆叠起来,但如何防止用户使用默认端口?
也许启动行中有 javaagent 的东西?
编辑:
这是一个很好的示例代码吗? <代码>
System.setSecurityManager(...);
// invoke the jar with a URLClassLoader
I want to host a game called Minecraft and let people upload their own Java JAR.
Now I want to restrict them to a certain port range.
As running all JVM's in virtual boxes is overkill we just stack them, but how do I prevent a user of using the default port?
Maybe something with javaagent in startup line?
EDIT:
Would this be a good sample code?
System.setSecurityManager(...); // invoke the jar with a URLClassLoader
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为您实际上正在寻找沙箱而不是防火墙。 java 安全管理器可以让你做类似的事情这是通过政策来实现的。
I think you're actually looking for a sandbox and not a firewall. The java security manager lets you do things like this through policies.
您应该能够修改 JVM 的安全策略以限制网络访问。这里有一些信息: http://docs.oracle .com/javase/1.4.2/docs/guide/security/permissions.html#SocketPermission
You should be able to modify the security policy for the JVM to restrict network access. Some info here: http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html#SocketPermission
那么其他安全问题(例如文件系统访问)又如何呢?看起来您需要像浏览器中的小程序一样限制虚拟机(小程序安全管理器)。
And what about other security issues like file system access? Looks like you need a VM restricted like an Applet in a browser (Applet Security Managers).