【发布时间】:2017-07-11 18:37:37
【问题描述】:
我需要创建从不受信任的类文件加载的类的新实例。 现在我执行以下操作:
classLoader.loadClass(UNSTRUSTED_CLASS).newInstance()
问题是,如果我启用安全管理器,它不允许调用 newInstance,但如果我禁用安全管理器,则可以将恶意代码放入初始化块中,并且它可以毫无问题地执行。
如何完成创建不受信任类的新实例?
【问题讨论】:
-
@Akash 我看过那个问题。有足够的区别,因为我可以隔离方法调用,但不能隔离实例化。不幸的是,回答这个问题也无济于事。
-
您不能将受信任的调用类型与潜在的不受信任的被调用者隔离开来,以便可以授予前者的
ProtectionDomain(通过Policy或ClassLoader)必要的实例化权限,而后者仍然受到(严格)访问控制? -
这就是我试图实现的目标,不知道现在我是如何知道并作为答案分享的
-
为什么你会有一个
SecurityManager并且不希望它应用于不受信任的代码?
标签: java security securitymanager