From afc7b183308adc309497ec6ef38c5e39aca63584 Mon Sep 17 00:00:00 2001 From: luelueking <93204032+luelueking@users.noreply.github.com> Date: Fri, 3 Mar 2023 21:15:56 +0800 Subject: [PATCH] Fix spel expression injection vulnerability (#270) --- .../core/domain/mock/script/SpelScriptEvaluator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/databasir/core/domain/mock/script/SpelScriptEvaluator.java b/core/src/main/java/com/databasir/core/domain/mock/script/SpelScriptEvaluator.java index d1c40c7..3a69bf8 100644 --- a/core/src/main/java/com/databasir/core/domain/mock/script/SpelScriptEvaluator.java +++ b/core/src/main/java/com/databasir/core/domain/mock/script/SpelScriptEvaluator.java @@ -3,7 +3,7 @@ package com.databasir.core.domain.mock.script; import lombok.RequiredArgsConstructor; import org.springframework.expression.Expression; import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.expression.spel.support.SimpleEvaluationContext; import org.springframework.stereotype.Component; @Component @@ -15,7 +15,7 @@ public class SpelScriptEvaluator implements MockScriptEvaluator { @Override public String evaluate(String script, ScriptContext context) { Expression expression = spelExpressionParser.parseExpression(script); - StandardEvaluationContext spelContext = new StandardEvaluationContext(context); + SimpleEvaluationContext spelContext = SimpleEvaluationContext.forReadOnlyDataBinding().build(); return expression.getValue(spelContext, String.class); } }