前言:在Spring中存在缺陷的RCE的断裂都是因SpEL表达注入产生。
SpEL
Spring表达式语言全称为Spring Expression Language,是Spring框架创建的一种表达式语言,它支持在运行时查询和操纵对象图表。这里要注意的是SpEL通过API接口的形式创建的,允许将其集成到其他应用程序和框架中。
SpEL使用实例
在Spring Framework中SpEL的使用是比较常见的。一个很好的例子是spring security,其中使用SpEL表达分配权限:使用Spring Security 入门原理及实战
spring annotions 安全表达式 SpEL expression
| | |
@PreAuthorize("hasPermission(#contact, 'admin')")
public void deletePermission(Contact contact, Sid recipient, Permission permission);
Apache Camel 使用SpEL API; 以下是其文档中的示例。使用SpEL表达式形成一个字母:
<route>
<from uri="direct:foo"/>
<filter>
<spel>#{request.headers['foo'] == 'bar'}</spel>
<to uri="direct:bar"/>
</filter>
</route>
参考链接:
本文介绍了Spring表达式语言(SpEL)的基本概念和用途,包括其在Spring Security中的应用实例。同时,提到了SpEL可能带来的远程代码执行(RCE)的安全风险,强调了SpEL注入问题的重要性。
113

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



