1、SpEL简介
Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言、用于在运行时查询和操作对象图;语法上类似于 Unified EL,但提供了更多的特性,特别是方法调用和基本字符串模板函数。SpEL 的诞生是为了给 Spring 社区提供一种能够与 Spring 生态系统所有产品无缝对接,能提供一站式支持的表达式语言。
Spring框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系,而SpEL可以方便快捷的对ApplicationContext中的Bean进行属性的装配和提取。由于它能够在运行时动态分配值,因此可以为我们节省大量Java代码。
spEL表达式有很多特效:
- 使用Bean的ID来引用Bean;
- 可调用方法和访问对象属性
- 可对值进行算数、关系和逻辑运算;
- 可使用正则表达式进行匹配;
- 可进行集合操作;
2、SpEL原理
在 pom.xml 导入 maven 或是把"org.springframework.expression-3.0.5.RELEASE.jar"添加到类路径中:
<properties>
<org.springframework.version>5.0.8.RELEASE</org.spr ingframework
本文详细介绍了Spring Expression Language (SpEL)的原理、语法和漏洞分析,重点讨论了CVE-2016-4977漏洞,分析了SpEL在代码审计中的风险点,并提出了修复建议,强调了使用SimpleEvaluationContext替代StandardEvaluationContext来限制表达式的能力,以防止代码注入漏洞。
订阅专栏 解锁全文
3386

被折叠的 条评论
为什么被折叠?



