我可以让用户将一些文字发布到消息Feed中。他们能够输入他们想要的任何东西。
后端服务器检测到有链接和其他可链接元素(如标记其他人),然后将这些链接保存到数据库中。
当用户被提供完整的消息列表时,他们会看到用户发布的内容,并且任何想要成为链接的内容都会变成链接
例如有人输入www.foobar.com,因此帖子会显示<a href='www.foobar.com'>www.footbar.com</a>
这很有效,但是如果有人在自己中键入HTML会怎样。首先它会混乱格式化,其次它允许用户发布他们自己的HTML,这可能是危险的,原因很明显。
我需要一种不将API返回的文本转换为HTML的方法,除非它是我想要的HTML。但是,我不想阻止某人试图发布HTML,只是停止转为HTML
Twitter正确地做到了。如果我发布到twitter
<a href='www.foobar.com'>www.footbar.com</a>
它会告诉我你在那里看到的确切内容,但www.foobar.com将突出显示并可点击。
虽然它可能不相关,但我使用ASP.NET Web API后端和Knockout.JS作为前端
更新
我使用以下代码来显示文本(knockout JS observables)
<div data-bind="foreach: allMessages">
<span data-bind="html: theText"></span>
答案 0 :(得分:1)
您的后端代码应编码进来的数据。这会将html标记更改为基于文本。
示例是<div>test</div>
对%3Cdiv%3Etest%3C/div%3E
的更改。这样可以防止数据进入您不想要的数据库。