SPelInjection

本文介绍了Spring表达式语言(SpEL)的基本概念和用途,包括其在Spring Security中的应用实例。同时,提到了SpEL可能带来的远程代码执行(RCE)的安全风险,强调了SpEL注入问题的重要性。

前言:在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>

 

 

 

 

参考链接:

SpEL injection

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值