为什么不应该';我是否使用默认的java安全管理器

为什么不应该';我是否使用默认的java安全管理器,java,security,securitymanager,Java,Security,Securitymanager,我的项目的一部分需要允许参与者上传简单且非常基本的java代码,我将运行他们的代码并为他们返回结果。我通过限制web用户帐户的权限、使用线程控制超时情况以及使用安全管理器对委托程序进行沙箱处理来降低安全风险 因为我不知道什么样的请求可能会导致意外的危险,所以我决定使用默认策略。但大多数人都在谈论使用自定义策略 我已经搜索了很多,但是我仍然没有找到任何网站/文献/教程来讨论为什么我不应该使用默认的安全管理器。当默认策略存在时,使用自定义策略是否可以避免任何错误 我的意思是,这是因为默认策略过于严格

我的项目的一部分需要允许参与者上传简单且非常基本的java代码,我将运行他们的代码并为他们返回结果。我通过限制web用户帐户的权限、使用线程控制超时情况以及使用安全管理器对委托程序进行沙箱处理来降低安全风险

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

我已经搜索了很多,但是我仍然没有找到任何网站/文献/教程来讨论为什么我不应该使用默认的安全管理器。当默认策略存在时,使用自定义策略是否可以避免任何错误

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


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

必须授权最低权利,而不是“合理违约”


这取决于项目的细节。这些详细信息定义您对客户代码的权限。这是一个巨大的问题,知道你在做什么,你可能会调整得更紧。至少,您应该查看默认策略文件,并认为可以另外禁用该文件

对不起,我不明白。你的意思是我应该复制沙盒吗?这意味着你应该看看名为“”的问题,因为它与你正在问的问题非常相似,答案可能对你有用。谢谢,我已经阅读了链接,它非常有用。我实际上是根据这个链接中的答案构建了我的系统。但我仍然不知道为什么我们应该使用自定义策略而不是默认策略。(我知道我的问题很愚蠢,但我只需要一个理由)是因为“默认SecurityManager更常用于通过任何方法控制特定操作,自定义SecurityManager可以通过单个方法控制操作”。林克:我建议你试试。如果你需要一个安全管理员。你会发现你需要什么额外的权限,而它没有给你。因此,默认策略提供了“合理的默认”权限。如果我想停止某些权限,我需要一个自定义权限。是这样吗?