是否有关于在服务器上运行用户提供的Java代码的安全问题的完整列表?我已经
了如果重要的话,我在FreeBSD服务器上运行它。
答案 0 :(得分:3)
看起来是一个非常好的开始 - 安全管理器对于沙箱化一大堆你没有明确提及的东西是必不可少的(比如阻止用户禁用安全管理器,当然,并且能够调用任意命令,或使用本机代码,或获取操作系统执行文件等)。我假设您从零权限开始,只是授予所需的显式权限。
安全管理器无法通过过多的资源使用来处理拒绝服务,但是您的其他控件可能会解决此问题(阻止网络连接,控制磁盘使用,超时以防止CPU占用 - 如果超出您的意思)
你说“文件系统权限非常有限” - 希望这还包括磁盘配额?你在运行多个不受信任的进程,它们共享磁盘空间吗?用完文件句柄可能是一个问题(不确定如何为有限的帐户管理这些句柄)。
仍然偶尔存在JVM漏洞,因此风险取决于服务器上的其他内容,以及问题的实际后果(如果必须擦除服务器有多糟糕?)。
另请参阅:Sandbox against malicious code in a Java application和Execute external Java source code on server - limit security and resources?
答案 1 :(得分:1)
我问自己的问题是,“我相信人民多少,我相信他们的代码不会破坏我的系统多少?”总的来说,我的回答并不多,而且我的投入也不多。但是,在我的头脑中,这里有一些我想要防范的事情。
很多更需要警惕,所以我会谨慎行事。尽可能保护每个帐户和/home
目录(简单的chmod 700 $HOME
通常会这样做),并尝试在公开部署之前考虑狡猾的代码。一旦您对服务器的稳定性感到满意,就让其他人测试您的服务器,看看它的运行情况。