TIM*_*MEX 10 python django templates escaping
如果我有一个人们发表评论的方框,然后我会显示这样的评论......我应该逃脱吗?
{{ c.title }}
Run Code Online (Sandbox Code Playgroud)
Evg*_*eny 18
实际上,这取决于.Django的模板引擎会自动转义,所以你真的不需要逃避.
如果你像那样添加模板过滤器"safe",{{c.title|safe}}你需要担心像html注入这样的事情,因为"safe"标记了字符串,这意味着它不会被转义.
还有{%autoescape on%} ... {%endautoescape%}模板标记,如果需要,可以将"on"更改为"off".默认情况下它处于打开状态,不需要标记.
其他模板引擎默认情况下可能无法转义,Jinja2就是其中之一.
HTML自动转义默认情况下处于启用状态,因此在大多数情况下您不需要手动转义,但不是全部!
将变量的内容转储到HTML元素中是很好的:
<p>{{ variable }}</p>
Run Code Online (Sandbox Code Playgroud)
Django会自动跳脱的人物<,>,&,"和',这是这里需要什么.
将变量转储到属性中也是可以的,因为"并且'都被转义,但请确保记住包含引号,因为空格不会被转义:
<span class="{{ variable }}">...</span> <!-- Good -->
<span class={{ variable }}>...</span> <!-- Bad -->
Run Code Online (Sandbox Code Playgroud)
如果要在内联Javascript中使用字符串,则必须使用escapejs过滤器,并且不要忘记引号.这可以防止从Javascript变量的引号中转出,并<script>使用</script>以下命令转义出标记:
<script>
var value = "{{ variable|escapejs }}";
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14404 次 |
| 最近记录: |