我听说有人在谈论Go如何在使用HTML时很好地实现“上下文感知变量”。它们是什么,它们是如何工作的?
我猜,因为它与安全性有关,所以它是某种变量,它知道它是否经过了消毒。它是否类似于一个名为unsanitizedString的类,在该类中,当转换为普通字符串时它会自动清除内容?
发布于 2015-01-26 00:20:16
html/模板包是上下文感知的。
这个包理解HTML、CSS、JavaScript和URI。它为每个简单的操作管道添加了消毒功能。
因此,如果变量Foo包含<script>alert('you have been pwned')</script>并将其打印在html元素中,则<p>{{.Foo}}</p> Foo将被正确转义以避免脚本注入。
在使用html/template时,如果要在转义发生时重写,则必须向变量中添加外型类型。
这是一个示例
https://stackoverflow.com/questions/28142771
复制相似问题