字節碼增強看起來像一個非常有趣的Java技術,但它有一點關於它的「黑魔法」的感覺。使用它有什麼缺點(除了功能被添加到從源代碼中看不到的類)?字節碼操作的危害是什麼(如果有的話)?
它是否會導致安全性,序列化等問題?
字節碼增強看起來像一個非常有趣的Java技術,但它有一點關於它的「黑魔法」的感覺。使用它有什麼缺點(除了功能被添加到從源代碼中看不到的類)?字節碼操作的危害是什麼(如果有的話)?
它是否會導致安全性,序列化等問題?
使用它有什麼缺點(除了功能被添加到類,從源代碼不明顯)?
有一件事是通過字節碼操作創建的錯誤可能更難以診斷。對源代碼和源代碼級別的調試將更加困難。
不會造成問題,安全性,
檢驗者應該(理論上)防止修改後的字節碼,可以打破核心類型系統和破壞JVM。 (不用說,不可信的代碼不應該被允許進行字節碼修改,所以我們可以打折這種情況。)但是,在過去,一些Java字節碼驗證程序一直不夠徹底。
此外,字節碼修改:
序列化等?
字節碼修改可以做的事情,使現有的序列化的對象可以被修改的類讀取;例如通過添加和刪除字段,或通過更改類的超類和接口。但是,您可以通過更改源代碼來執行相同的操作。
JVM驗證bytecodes,但deviant bytecode可能代表安全威脅。
「異常字節碼」引用是一個搜索鏈接,因爲可用信息不斷變化。 – trashgod 2010-11-16 13:06:59