《Java安全漫谈》是社区从2019年7月开始连载的系列文章,这个系列主要讲的是作者对Java安全的一些理解,虽然不是权威理解,但会讲到大部分作者认为2020年代系统性学习Java安全必备的知识。

本系列已经以及日后可能涉及到的知识点:

  • Java反射
  • RMI协议与漏洞
  • Java反序列化
  • JNDI注入
  • 内存马
  • 漏洞回显
  • Webshell
  • J2EE
  • Java传统漏洞
  • EL与SpEL表达式
  • OGNL表达式与Struts2系列漏洞
  • JSON反序列化
  • XML反序列化
  • Weblogic系列漏洞
  • ...

相比于已有的一些书籍或教程,《Java安全漫谈》系列的特点是:

《Java安全漫谈》内核是真正的Java安全,而非Web安全

网上一些Java安全总结向的书籍或文章会容易陷入一个死胡同,就是读着读着发现大部分内容是Web安全范畴。

比如,有的教程大部分内容是讲SQL注入、文件上传、XSS等通用Web漏洞,每种编程语言里实际原理大同小异,不具备Java特色;再比如讲SQL注入,漏洞原理与利用就占大部分篇幅,然后会涉及一些Java中SQL操作函数与修复方法。

这样的文章虽说不能说是错误的,但总有点挂羊皮卖狗肉的意思,实际上是依托Java这门语言在讲Web安全,并非在讲Java安全本身。

《Java安全漫谈》是作者自身的理解,而非漏洞或源码的讲解

网上有的Java安全相关文章是对漏洞或开源工具源码的讲解,照本宣科,缺少作者自己的思考过程。以反序列化利用链为例,很多文章仅是对ysoserial中利用链代码的逐行说明与复现。

相比起来,《Java安全漫谈》中有大量对ysoserial中利用链原理的介绍,代码的简化与修改,实际是作者理解了原理后重新编写的利用链代码,而非对原代码的简单讲解。

《Java安全漫谈》所有内容依托代码与实验得出,并非纸上谈兵

作者在文章中涉及的每一个知识点,都会进行实际代码复现,并且大部分能在Github中给出具体代码,读者可以自行实验。

因为有实验作为基础,本系列中涉及到大量互联网上尚未公开传播的一些技术细节,比如某某类在JDK某某版本中会失效、Java官方为什么对某某机制进行修改等。这些细节在大部分情况下可能并不重要,但是有时会让你少踩很多坑,也能解答你的不少疑惑

《Java安全漫谈》配套代码Githu地址:https://github.com/phith0n/JavaThings