gpt4 book ai didi

java - SecurityManager 惊喜

转载 作者:搜寻专家 更新时间:2023-10-31 19:41:26 33 4
gpt4 key购买 nike

我想创建一个非常严格的安全管理器,所以我扩展了 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 密封吗?

最佳答案

至少有几件事我能想到:

  1. 有人可以使用反射将 System.security 字段设置为可访问,然后将其设置为他们想要的任何值。

  2. 有人可以使用 sun.misc.Unsafe用他们想要的任何随机东西直接覆盖内存中的实例。

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

关于java - SecurityManager 惊喜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921979/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com