我有兩個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 >
這是做這一種安全的方式?還是還有一些匪徒?我想解決這個問題的最好辦法是過濾掉後端的所有不安全的輸入(是否有可靠的方法來做到這一點?)
謝謝!