mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-04-26 05:25:41 +08:00
security: Adopt Jinja2 SandboxedEnvironment for template rendering. (#13305)
This commit is contained in:
@ -18,7 +18,9 @@ import re
|
||||
from abc import ABC
|
||||
from typing import Any
|
||||
|
||||
from jinja2 import Template as Jinja2Template
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
|
||||
_jinja2_sandbox = SandboxedEnvironment()
|
||||
from agent.component.base import ComponentParamBase
|
||||
from common.connection_utils import timeout
|
||||
from .message import Message
|
||||
@ -96,7 +98,7 @@ class StringTransform(Message, ABC):
|
||||
script, kwargs = self.get_kwargs(script, kwargs, self._param.delimiters[0])
|
||||
|
||||
if self._is_jinjia2(script):
|
||||
template = Jinja2Template(script)
|
||||
template = _jinja2_sandbox.from_string(script)
|
||||
try:
|
||||
script = template.render(kwargs)
|
||||
except Exception:
|
||||
|
||||
Reference in New Issue
Block a user