jinja2:html转义变量

fly*_*ire 21 python security escaping jinja2

我如何在jinja2中html-escape危险的unsanitized输入?

我可以在模板中执行它还是必须在python代码中完成?

我有一个可能包含da <ngero> u&s字符的变量.我如何在jinja2中逃脱它

Jer*_*ckx 14

您还可以告诉环境自动查看所有内容:

e = Environment(loader=fileloader, autoescape=True)
Run Code Online (Sandbox Code Playgroud)

注意:在jinja1中这是auto_escape


jia*_*npx 6

如果你想在你的程序中转义html,你可以这样做(例子):

>>> import jinja2
>>> jinja2.__version__
'2.6'
>>> a
'<script>alert("yy")</script>'
>>> jinja2.escape(a)
Markup(u'&lt;script&gt;alert(&#34;yy&#34;)&lt;/script&gt;')
>>> str(jinja2.escape(a))
'&lt;script&gt;alert(&#34;yy&#34;)&lt;/script&gt;'
Run Code Online (Sandbox Code Playgroud)