Javascript 将数据推送到模板中时使链接可点击

Javascript 将数据推送到模板中时使链接可点击,javascript,html,go,Javascript,Html,Go,我从用户那里获取输入,然后为提到的用户添加链接,然后在模板中传递相同的内容 Hello, {{.}}! 输入:hello@ds 添加链接后的字符串- "@<a class="tweet-url username" href="/user/ds" data-screen-name="ds" rel="nofollow">ds</a>" “@” 在.Msg中传递上述字符串(使用golang模板): {.Msg} 预期结果是:Hello@ds(在@ds上有可点击的链接

我从用户那里获取输入,然后为提到的用户添加链接,然后在模板中传递相同的内容

Hello, {{.}}!
输入:hello@ds
添加链接后的字符串-

"@<a class="tweet-url username" href="/user/ds" data-screen-name="ds" rel="nofollow">ds</a>"
“@” 在.Msg中传递上述字符串(使用golang模板):


{.Msg}

预期结果是:Hello@ds(在@ds上有可点击的链接) 但是,以文本格式获取所有内容(与输入相同)

@
我错过了什么


有更好的解决办法。首先,我对输入进行htmlEscape处理,然后将其存储在数据库中,然后在演示添加链接的同时使用document.write(string)函数。有了这个,我不必更改模板,也不必担心XSS附加。此外,我还在数据库中避免使用XSS脚本

尝试在
template.HTML
中包装字符串(
Msg
),以禁用HTML/template执行的转义

示例来自:

模板

Hello, {{.}}!
可以通过调用

tmpl.Execute(out, template.HTML(`<b>World</b>`))
如果{{{}}的话,就会产生这样的结果 是一个普通的字符串

请注意,您应该非常小心地执行此操作。。。确保您信任在
template.HTML
中包装的字符串。这是一种容易让自己受到XSS攻击的方法。

尝试在
template.HTML
中包装字符串(
Msg
),以禁用HTML/template所做的转义

示例来自:

模板

Hello, {{.}}!
可以通过调用

tmpl.Execute(out, template.HTML(`<b>World</b>`))
如果{{{}}的话,就会产生这样的结果 是一个普通的字符串


请注意,您应该非常小心地执行此操作。。。确保您信任在
template.HTML
中包装的字符串。这是向XSS攻击敞开心扉的简单方法。

谢谢。然而,如何在实现相同目标的同时避免XSS攻击。twitter、facebook和其他网站都做些什么?他们还可以点击推特和评论的一部分。谢谢。然而,如何在实现相同目标的同时避免XSS攻击。twitter、facebook和其他网站都做些什么?他们还可以点击部分推文和评论。
Hello, &lt;b&gt;World&lt;b&gt;!