gpt4 book ai didi

java - 私有(private)字段是否提供任何实际的安全性?

转载 作者:行者123 更新时间:2023-11-30 09:00:21 24 4
gpt4 key购买 nike

既然我们可以通过反射访问任何东西,无论它是字段、方法还是构造函数,声明私有(private)的东西有什么帮助/做什么?私有(private)字段的唯一目的是告诉其他程序员嘿,这个字段不打算像这样使用吗?

在谈论安全性时,有没有办法阻止用户访问 API(为了主题起见,我们假设它是闭源的)私有(private)和 protected 字段?

最佳答案

如果您允许不受信任的代码在没有安全管理器的情况下在 JVM 中运行,它可以通过 setAccessible 关闭 private 检查。从而通过反射使 private 字段和方法可用。

Java 的 SecurityManager 有一个 poor history of withstanding determined attacks因此假设 SecurityManager 会阻止可能导致加载任意字节码的坚定攻击者是不合理的。

即使 SecurityManager 成立,概念证明也显示了如何通过序列化 API 等低级 Java API 提取 secret 。

Can a secret be hidden in a 'safe' java class offering access credentials?列出了尝试将敏感数据存储在同时运行不受信任代码的 JVM 中的字段中的一些陷阱。

关于java - 私有(private)字段是否提供任何实际的安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26832844/

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