2009-10-12 48 views
16

jinja2で危険な非活性化入力をhtmlでエスケープするにはどうすればよいですか?jinja2:htmlエスケープ変数

テンプレート内で実行できますか、それともPythonコードで行う必要がありますか?

私は変数を持っています。これは、da <ngero> u &の文字です。 jinja2でどのようにエスケープするのですか?

答えて

28

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

注:あなたはまた、すべてのものをautoescapeする環境を言うことができる

Jinija: Template Designer Documentation -> Builtin Filters: Escape

+0

、http://jinja.pocoo.org使用/ docs/templates /?highlight = pipe%20safe#html-escaping –

+0

そしてもう一度壊れたhttp://jinja.pocoo.org/docs/dev/templates/#builtin-filters – silpol

14

|eフィルターを通した

{{ user.username|e }} 

パイプはjinja1では、これはauto_escape

4

ですあなたがyoで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;'