是否可以避免第三方代码使用自定义的SecurityManager创建新线程,启动新VM或泄漏数据?

最佳答案

创建线程会导致对securityManager.checkAccess(g)的调用,其中gThreadGroup。这又需要SecurityConstants.MODIFY_THREADGROUP_PERMISSION

创建新的JVM实例的唯一方法是启动新进程。这将需要SecurityConstraints.FILE_EXECUTE_ACTION

因此,如果您的SecurityManager对这两个权限都引发了异常,则涵盖了前两种情况。

您需要限定什么构成“泄漏数据”。是否担心意外泄漏或故意泄漏?问题是不受信任的代码访问数据,还是不受其他线程,类等访问的不受信任的代码数据?

10-05 18:38