gpt4 book ai didi

java - 字节码操作的危险是什么(如果有的话)?

转载 作者:行者123 更新时间:2023-11-30 06:36:54 24 4
gpt4 key购买 nike

字节码增强似乎是一种非常有趣的 Java 技术,但它有一点“黑魔法”的感觉。使用它是否有任何缺点(除了将功能添加到源代码中不明显的类这一事实)?

它会导致安全、序列化等方面的问题吗?

最佳答案

Are there any disadvantages to using it (other than the fact that functionality is added to classes that is not apparent from the source code)?

一件事是字节码操作造成的错误可能更难诊断。源代码检查和源代码级调试将更加困难。

Does it cause problems with security,

验证者应该(理论上)防止修改后的字节码破坏核心类型系统和破坏 JVM。 (不言而喻,不应该允许不受信任的代码进行字节码修改,因此我们可以忽略这种情况。)但是,在过去,一些 Java 字节码 validator 并不彻底。

此外,字节码修改:

  • 使基于源代码的安全分析变得更加困难,并且
  • 可能会抵消使用 FindBugs 等静态分析工具的(有限)安全优势。

serialization, etc.?

字节码修改可以做一些事情,使修改后的类无法读取现有的序列化对象;例如通过添加和删除字段,或通过更改类的父类(super class)和接口(interface)。但是,您可以通过更改源代码来做同样的事情。

关于java - 字节码操作的危险是什么(如果有的话)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193689/

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