下面是JS代码,请查看html源代码
说明:
JS 封装了一个已知安全的 EcmaScript5 表达式,例如,(x + y * z())。
模板编写者需负责确保所输入的表达式不会破坏预期的运算优先级,并且不会出现类似以下情况中的语句/表达式歧义:如传入 "{ foo: bar() }\n['foo']()" 这样的表达式,它既是一个有效的表达式,
又是一个含义截然不同的有效程序。
使用此类类型存在安全风险:封装的内容应来自可信来源,因为该内容将原样包含在模板输出中。
使用 JS 来包含有效但不可信的 JSON 是不安全的。安全替代方案是使用 json.Unmarshal 解析 JSON,然后将生成的对象传入模板,在 JavaScript 上下文中呈现时,该对象将被转换为经过净化的 JSON。