我想创建一个限制性很强的安全管理器,所以我扩展了SecurityManager并覆盖了所有自定义的checkXXX方法。
但是后来我发现我的安全经理是无用的,因为任何人都可以:
System.setSecurityManager(null);所以我不得不补充一句:
@Override public void checkPermission(Permission perm) {
if (perm.getName().equals("setSecurityManager")) {
throw new SecurityException("You shall have no other security manager but me!");
}
}还有更多的惊喜吗?要使我的SecurityManager密封,我还需要做什么吗?
发布于 2011-08-03 13:30:27
我至少能想到几件事:
System.security字段设置为accessible,然后将其设置为他们想要的任何内容。我认为您的SecurityManager可以防范这些事情,因为它们都依赖于对Field.setAccessible()的调用。但最好是测试一下,以确定。
https://stackoverflow.com/questions/6921979
复制相似问题