django是否有一个用户可编辑的模板语言,就像rails有液体一样安全?
即。最终用户无法破解模板代码以某种方式输出危险对象并破解网站。
答案 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/