Jinja2的:HTML逃脱变量(jinja2: html escape variables)

2019-08-17 21:24发布

我怎么HTML-逃避危险的Jinja2输入unsanitized?

我能做到这一点的模板中,或者必须在它Python代码来完成?

我有可能包含大<ngero>û&S个字符的变量。 我怎么逃脱它的Jinja2

Answer 1:

{{ user.username|e }}

管它通过|e过滤器

Jinija:模板设计文档- >内建过滤器:逃生



Answer 2:

你也可以告诉环境autoescape一切:

e = Environment(loader=fileloader, autoescape=True)

注意:在jinja1这是auto_escape



Answer 3:

如果你想在你的程序逃脱的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;'


Answer 4:

烧瓶带有内置tojson过滤器:

http://flask.pocoo.org/docs/templating/#standard-filters



文章来源: jinja2: html escape variables