fix(sj_1.4.0-beta2):修复spel类型注入,会导致RCE的安全问题
This commit is contained in:
parent
4444a508e1
commit
d8d78afe0d
@ -5,7 +5,7 @@ import com.aizuda.snailjob.common.core.util.JsonUtil;
|
|||||||
import org.springframework.expression.EvaluationContext;
|
import org.springframework.expression.EvaluationContext;
|
||||||
import org.springframework.expression.ExpressionParser;
|
import org.springframework.expression.ExpressionParser;
|
||||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
import org.springframework.expression.spel.support.SimpleEvaluationContext;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ public class SpELExpressionEngine extends AbstractExpressionEngine {
|
|||||||
protected Object doEval(String expression, Map<String, Object> context) {
|
protected Object doEval(String expression, Map<String, Object> context) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final EvaluationContext evaluationContext = new StandardEvaluationContext();
|
final EvaluationContext evaluationContext = SimpleEvaluationContext.forReadOnlyDataBinding().build();
|
||||||
context.forEach(evaluationContext::setVariable);
|
context.forEach(evaluationContext::setVariable);
|
||||||
return ENGINE.parseExpression(expression).getValue(evaluationContext, Object.class);
|
return ENGINE.parseExpression(expression).getValue(evaluationContext, Object.class);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
Loading…
Reference in New Issue
Block a user