🗒️ SSTI及Thymeleaf 模板引擎注入

SSTI就是服务器端模板注入(Server-Side Template Injection),实际上也是一种注入漏洞;可以类比于SQL注入,实际上这两者的基本思想是一致的;

🗒️ SpEL表达式及SpEL表达式注入

Spring Expression Language(简称SpEL)是一种功能强大的表达式语言,是spring提供的,该语言类似于JSP当中的EL表达式。但提供了很多额外的功能,最出色的就是函数调用和简单字符串的模板函数。他需要使用spring提供的解析器来解析,但是他不依赖于spring,可以独立使用。 框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系,而SpEl可以方便快捷的对ApplicationContext中的Bean进行属性的装配和提取。

🗒️ OGNL表达式

OGNL是一个功能强大的表达式语言,用来获取和设置 java 对象的属性 ,它旨在提供一个更高抽象度语法来对 java 对象图进行导航。 OGNL具有三要素: 表达式、ROOT对象、上下文环境 表达式: 显然,这肯定是其中最重要的部分,通过表达式来告诉OGNL需要执行什么操作。 ROOT对象: 也就是OGNL操作的的对象,也就是说这个表达式针对谁进行操作。 上下文环境: 有了前两个条件,OGNL就能进行执行了,但是表达式有需要执行一系列操作,所以会限定这些操作在一个环境下,这个环境就是上下文环境,这个环境是个MAP结构。

🗒️ MVEL表达式

MVEL为 MVFLEX Expression Language(MVFLEX表达式语言)的缩写,它是一种动态/静态的可嵌入的表达式语言和为Java平台提供Runtime(运行时)的语言。 MVEL通常用于执行用户(程序员)通过配置XML文件或注释等定义的基本逻辑。