django有一个用户可编辑的模板语言,就像rails有液体一样安全吗?

时间:2011-02-10 20:08:13

标签: python django

django是否有一个用户可编辑的模板语言,就像rails有液体一样安全?

即。最终用户无法破解模板代码以某种方式输出危险对象并破解网站。

2 个答案:

答案 0 :(得分:2)

如果您正确使用模板语言:是的。

请参阅Django模板标签和过滤器:

一个例子:

{{ evil_userinput }}

这将直接打印出用户输入。

{{ evil_userinput|escape }}

这将转义所有HTML实体,因此无法在HTML页面中包含危险代码。

答案 1 :(得分:1)

Liquid起源于Django模板语言,所以答案是肯定的。您可以呈现用户提交的模板并按照您希望的方式处理它们。然而,安全性是开发人员应该关注的。如果你想让你的用户用脚射击你,模板工具将不会保护你,除非你消毒和验证他们的输入。

以下是一些好的读物:

http://www.djangobook.com/en/2.0/chapter04/

http://www.djangobook.com/en/2.0/chapter09/

http://loopj.com/2009/05/23/a-django-developers-views-on-rails/