【发布时间】:2010-12-06 02:33:53
【问题描述】:
我可以在模板中完成还是必须在 python 代码中完成?
我有一个可能包含 da
【问题讨论】:
标签: python security escaping jinja2
我可以在模板中完成还是必须在 python 代码中完成?
我有一个可能包含 da
【问题讨论】:
标签: python security escaping jinja2
您可以进行字符串检查并替换为相应的转义字符。
例如:string=I am a special character <
执行以下操作:
string.replace("<","< ;")
请注意,在您的代码中, t 和 ; 之间的空格已被淘汰。无法在此处消除此问题,因为它将被格式化为显示
然后使用 jinja2 打印出格式化的字符串。
【讨论】:
【讨论】:
Flask 有一个内置的tojson 过滤器:
【讨论】:
如果你想在你的程序中转义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>'
【讨论】:
您还可以告诉环境自动转义所有内容:
e = Environment(loader=fileloader, autoescape=True)
注意:在 jinja1 中这是 auto_escape
【讨论】: