Spring EL(SpEL)代码执行

CBH*_*CBH 5 java spring spring-el

我想使用SpEL来评估一些用户输入.但这会打开一个安全漏洞,因为SpEL enginge也会执行代码并可以启动类并访问静态对象.例如,T(系统).exit(0)退出系统.

是否可以阻止此类代码执行?

bee*_*jay 0

避免这种情况的方法是永远不要用表达式语言评估用户输入。

您几乎永远无法枚举并因此阻止执行所有可能的“坏”代码。

相反,您可以使用用户输入作为具有固定 EL 表达式的环境变量(字符串、数字)。