我正在研究一些网站中的一些安全错误,想知道 jinja2 是否默认启用自动转义。根据 Jinja 文档(http://jinja.pocoo.org/docs/2.9/faq/#why-is-autoescaping-not-the-default),它没有,但是当我测试该应用程序时在新系统上,它已启用(不过我可能不小心这样做了,不确定。
有人能解释一下吗?
正如 @mgilson 回答所述,默认情况下不会在所有文件上启用自动转义,而仅在以
.html
、.htm
、.xml
和 .xhtml
结尾的文件上启用自动转义。并非每个人都使用这些扩展,因为它们可能会产生误导:它们包含的代码不是正常的 (X)HTML 代码,而是 Jinja 模板;为了澄清这一点,有些人使用扩展名 .j2
。
为了对所有文件启用自动转义(无论其扩展名如何),可以使用以下代码:
app.jinja_options["autoescape"] = True