джинджа2:экранирующие переменные html
Вопрос
как мне избежать опасного несанкционированного ввода в формате html в jinja2?
Могу ли я сделать это внутри шаблона или это должно быть сделано в коде python?
У меня есть переменная, которая может содержать da<ngero>символы u и s.Как мне избежать этого в jinja2
Решение
например ,
{{ user.username|e }}
Пропустите его через |e
Фильтр
Джиния:Документация дизайнера шаблонов -> Встроенные фильтры:Побег
Другие советы
Вы также могли бы указать среде, чтобы она автоматически изменяла все:
e = Environment(loader=fileloader, autoescape=True)
примечание:в jinja1 это auto_escape
Если вы хотите избежать html в своей программе, вы можете сделать это следующим образом (пример):
>>> import jinja2
>>> jinja2.__version__
'2.6'
>>> a
'<script>alert("yy")</script>'
>>> jinja2.escape(a)
Markup(u'<script>alert("yy")</script>')
>>> str(jinja2.escape(a))
'<script>alert("yy")</script>'
Колба имеет встроенный tojson
Фильтр:
Не связан с StackOverflow