什么是上下文感知变量?

时间:2015-01-25 23:21:33

标签: variables go

我听说有人在谈论Go在使用HTML时如何很好地实现“上下文感知变量”。它们是什么以及它们如何运作?

我猜测,因为它与安全性有关,它是某种变量,知道它是否已被消毒。它是否类似于一个名为unsanitizedString的类,它会在转换为普通字符串时自动清理内容?

1 个答案:

答案 0 :(得分:4)

html/template包可以识别上下文。

  

此包可以理解HTML,CSS,JavaScript和URI。它为每个简单的操作管道添加了清理功能

因此,如果您的变量Foo包含<script>alert('you have been pwned')</script>,并且您将其打印在html元素<p>{{.Foo}}</p>中,则会正确转义Foo以避免脚本注入。

使用html/template时,如果要在转义时覆盖,则必须为变量添加explicet类型。

这是example