<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Java 類序列化

    Java 序列化和反序列化

    在很多語言中都提供了對象反序列化支持,Java在JDK1.1(1997年)時就內置了對象反序列化(java.io.ObjectInputStream)支持。Java對象序列化指的是將一個Java類實例序列化成字節數組,用于存儲對象實例化信息:類成員變量和屬性值。 Java反序列化可以將序列化后的二進制數組轉換為對應的Java類實例

    Java序列化對象因其可以方便的將對象轉換成字節數組,又可以方便快速的將字節數組反序列化成Java對象而被非常頻繁的被用于Socket傳輸。 在RMI(Java遠程方法調用-Java Remote Method Invocation)JMX(Java管理擴展-Java Management Extensions)服務中對象反序列化機制被強制性使用。在Http請求中也時常會被用到反序列化機制,如:直接接收序列化請求的后端服務、使用Base編碼序列化字節字符串的方式傳遞等。

    Java反序列化漏洞

    自從2015年Apache Commons Collections反序列化漏洞(ysoserial的最早的commit記錄是2015年1月29日,說明這個漏洞可能早在2014年甚至更早就已經被人所利用)利用方式被人公開后直接引發了Java生態系統的大地震,與此同時Java反序列化漏洞仿佛掀起了燎原之勢,無數的使用了反序列化機制的Java應用系統慘遭黑客瘋狂的攻擊,為企業安全甚至是國家安全帶來了沉重的打擊!

    直至今日(2019年12月)已經燃燒了Java平臺四年之久的反序列化漏洞之火還仍未熄滅。如今的反序列化機制在Java中幾乎成為了致命的存在,反序列化漏洞帶來的巨大危害也逐漸被我們熟知。2018年1月Oracle安全更新了237個漏洞,而反序列化漏洞就占了28.5%,由此可見Oracle對反序列化機制的深惡痛絕。2012年JEP 154提出了移除反序列化機制:JEP 154: Remove SerializationJDK-8046144,但似乎并未通過,移除反序列化是一個持久性的工作,短期內我們還是需要靠自身去解決反序列化機制帶來的安全問題。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类