首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SecurityManager带来的惊喜

SecurityManager带来的惊喜
EN

Stack Overflow用户
提问于 2011-08-03 13:20:24
回答 1查看 345关注 0票数 5

我想创建一个限制性很强的安全管理器,所以我扩展了SecurityManager并覆盖了所有自定义的checkXXX方法。

但是后来我发现我的安全经理是无用的,因为任何人都可以:

代码语言:javascript
复制
System.setSecurityManager(null);

所以我不得不补充一句:

代码语言:javascript
复制
@Override    public void checkPermission(Permission perm)  {
    if (perm.getName().equals("setSecurityManager")) {
        throw new SecurityException("You shall have no other security manager but me!");
    }
}

还有更多的惊喜吗?要使我的SecurityManager密封,我还需要做什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-03 13:30:27

我至少能想到几件事:

  1. 有人可以使用反射将System.security字段设置为accessible,然后将其设置为他们想要的任何内容。
  2. 某人可以使用sun.misc.Unsafe用他们想要的任何随机的东西直接覆盖内存中的实例。

我认为您的SecurityManager可以防范这些事情,因为它们都依赖于对Field.setAccessible()的调用。但最好是测试一下,以确定。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6921979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档