When should I use escape and safe in Django's template system?

前端 未结 4 1577
失恋的感觉
失恋的感觉 2020-12-01 13:31

If I have a box where people put comments, and then I display that comment like this...should I escape?

{{ c.title }}
4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-01 13:50

    Actually, it depends. Django's templating engine does escaping automatically, so you don't really need to escape.

    If you add template filter "safe" like {{c.title|safe}} then you do need to worry about things like html injection, because "safe" marks the string as such and it means that it won't be escaped.

    There is also an {% autoescape on %}...{% endautoescape %} template tag, where "on" can be changed to "off", if necessary. By default it's on and the tag is not needed.

    Other template engines may not be escaping by default, Jinja2 is one of them.

提交回复
热议问题