Frage

Wie kann ich html-entkommen gefährlich aufpoliert Eingang in jinja2?

Kann ich es in der Vorlage oder muss es in Python-Code zu tun?

Ich habe eine Variable, die DA u & s Zeichen enthalten. Wie kann ich es in jinja2 entkommen

War es hilfreich?

Lösung

z.

{{ user.username|e }}

Rohr es durch die |e Filter

Jinija: Template Designer Dokumentation -> Builtin Filter: Flucht

Andere Tipps

Sie können auch die Umwelt zu autoescape alles sagen:

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

Hinweis: in jinja1 dies auto_escape

Wenn Sie HTML in Ihrem Programm entfliehen möchten, können Sie es wie folgt (Beispiel) tun können:

>>> 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;'

Flask hat in tojson Filter einen eingebauten:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top