我正在研究某些网站中的一些安全漏洞,并想知道jinja2默认是否启用了autoescape。根据Jinja文档(http://jinja.pocoo.org/docs/2.9/faq/#why-is-autoescaping-not-the-default),它没有,但是当我在一个新系统上测试应用程序时,它已启用(我可能不小心这样做了,但不确定。
任何人都可以对此有所了解吗?
答案 0 :(得分:2)
除非自定义,否则Jinja2由Flask配置如下:
使用
render_template()
时,以.html,.htm,.xml以及.xhtml结尾的所有模板都启用了自动加载。
此外:
使用render_template_string()
时,为所有字符串启用了自动加载。
最后:
模板可以使用
{% autoescape %}
代码选择加入/退出自动加载。
因此,虽然默认情况下jinja
可能无法自动启动,但默认情况下flask
会启用Jinja的自动转换功能。