2014-08-29 66 views
2

我的部分项目需要允许参与者上传简单且非常基本的java代码,我将运行他们的代码并返回结果给他们。我通过限制Web用户帐户的权限,使用线程来控制超时情况,并使用安全管理器来处理沙盒委托程序来降低安全风险。为什么我不应该使用默认的java安全管理器

因为我不太了解什么样的请求可能会导致意外的危险,所以我决定使用默认策略。但大多数人都在谈论使用定制策略。

我搜索了很多,但我仍然没有找到任何网站/文学/教程,谈论为什么我不应该使用默认安全管理器。是否有任何缺陷可以通过使用自定义策略来避免,同时存在默认策略?

我的意思是,这是因为默认策略太严格或无用,因此人们倾向于使用自定义策略。

我已阅读java.security,但我仍想确保这一点。

+0

对不起,我不明白。你的意思是我应该复制沙箱吗? – user3794582 2014-08-29 08:20:48

+0

这意味着您应该查看一个名为“[Sandbox针对Java应用程序中的恶意代码]”的问题(https://stackoverflow.com/questions/502218/sandbox-against-malicious-code-in-a-java应用程序)“,因为它与你所要求的非常相似,并且答案可能对你有用。 – 2014-08-29 08:29:11

+1

谢谢,我读过这个链接,它非常有用。我实际上是根据这个链接中的答案构建了我的系统。但我仍然不知道为什么我们应该使用自定义策略而不是默认策略。 (我知道我的问题很愚蠢,但我只需要一个理由) – user3794582 2014-08-29 08:38:06

回答

1

必须授权最低权限,而不是“合理的默认值”。

这取决于您的项目的细节。这些细节定义您给客户代码的权限。 list of possible permissions是巨大的,知道你在做什么,你可以更紧密地调整它。至少,您应该查看默认策略文件,并认为可能会另外禁用。

+0

因此,默认政策提供“合理的默认”权限。如果我想停止一些权限,我需要一个自定义权限。这样对吗? – user3794582 2014-08-29 09:05:27

相关问题