我有两个Angular 2应用程序:一个用于最终用户,一个用于编辑团队。 这两个都是用Javascript编写的。在Angular2应用中呈现用户内容的安全方式
最终用户应用程序基本上是一个类似WhatsApp的聊天视图,用户可以与编辑团队1对1聊天。编辑应用程序显示所有对话的列表,并且还为每个对话提供类似WhatsApp的聊天视图。
到目前为止,这么好。一切正常。然而,我有一个关于安全的问题。
<div [innerHTML]="message.data.text"></div>
当用户滥用聊天输入框,然而,在
消息
类型,该HTML语句是:在第一个版本,在编辑应用程序的消息的内容使用innerHTML的语句被渲染呈现,这是我们不想要的(因为它可能会导致用脚本标记等恶意尝试)。不过,我注意到Angular2足够聪明,不会呈现JavaScript,但我不确定是否涵盖了每种类型的代码注入。所以我把它改为:<div>{{ message.data.text }}</div>
这忽略所有HTML并呈现
<H1>消息</H1 >
这是做这一种安全的方式?还是还有一些匪徒?我想解决这个问题的最好办法是过滤掉后端的所有不安全的输入(是否有可靠的方法来做到这一点?)
谢谢!