django安全的自动关闭?

Joe*_*Joe 3 django templates

我想在django 1.0模板中显示一些html,为此,我一直在做这样的事情:

{% autoescape off %}{{ var.text }}{% endautoescape %}
Run Code Online (Sandbox Code Playgroud)

而我只是想知道这有多安全?我是否仍然可以防止SQL注入和跨站点脚本以及其他类似的漏洞?

===编辑=======

这个文本将来自用户,那么在django模板中安全地显示html的最佳方法是什么?

Tod*_*ner 9

autoescape将防止跨站点脚本,而不是sql注入(您需要确保您的输入被清除).关闭autoescape意味着你相信"文本"中的内容,无论它来自何处,都不是恶意的(即,用户不可能创建或修改文本中的内容).如果该假设有效,那么您可以安全地反对跨站点脚本,否则,这是一个安全漏洞.


mar*_*rcc 6

不,当您在模板引擎中将HTML标记为安全时,您将负责确保渲染是安全的.

此外,您可以通过更改来简化(缩短)您的代码

{% autoescape off %}
    {{ var.text }}
{% endautoescape %}
Run Code Online (Sandbox Code Playgroud)

{{ var.text|safe }}   
Run Code Online (Sandbox Code Playgroud)