沙箱

Jinja2 沙箱用于为不信任的代码求值。访问不安全的属性和方法是被禁止的。

假定在默认配置中 env 是一个 SandboxedEnvironment 实例,下面的代码展示了它如何工作:

  1. >>> env.from_string("{{ func.func_code }}").render(func=lambda:None)
  2. u''
  3. >>> env.from_string("{{ func.func_code.do_something }}").render(func=lambda:None)
  4. Traceback (most recent call last):
  5. ...
  6. SecurityError: access to attribute 'func_code' of 'function' object is unsafe.