什么是上下文感知变量?
What are context aware variables?
我听到有人谈论 Go 如何在使用 HTML 时很好地实现 "context aware variables"。它们是什么以及它们如何工作?
我猜是因为它与安全性有关,所以它是某种变量,知道它是否已被清理。它是不是类似于一个叫做 unsanitizedString
的 class,它会在转换为普通字符串时自动清理内容?
html/template 包是上下文感知的。
This package understands HTML, CSS, JavaScript, and URIs. It adds sanitizing functions to each simple action pipeline
因此,如果您有包含 <script>alert('you have been pwned')</script>
的变量 Foo
并将其打印在 html 元素内 <p>{{.Foo}}</p>
Foo 将被正确转义以避免脚本注入。
使用 html/template
时,如果您想在应该发生转义时覆盖,则必须向变量添加显式类型。
这是一个example
我听到有人谈论 Go 如何在使用 HTML 时很好地实现 "context aware variables"。它们是什么以及它们如何工作?
我猜是因为它与安全性有关,所以它是某种变量,知道它是否已被清理。它是不是类似于一个叫做 unsanitizedString
的 class,它会在转换为普通字符串时自动清理内容?
html/template 包是上下文感知的。
This package understands HTML, CSS, JavaScript, and URIs. It adds sanitizing functions to each simple action pipeline
因此,如果您有包含 <script>alert('you have been pwned')</script>
的变量 Foo
并将其打印在 html 元素内 <p>{{.Foo}}</p>
Foo 将被正确转义以避免脚本注入。
使用 html/template
时,如果您想在应该发生转义时覆盖,则必须向变量添加显式类型。
这是一个example