2つのAngular 2アプリがあります.1つはエンドユーザー用、もう1つは編集チーム用です。 どちらもJavascriptで書かれています。Angular2アプリでユーザーコンテンツを安全にレンダリングする
エンドユーザーのアプリは基本的にWhatsAppのようなチャットビューです。ユーザーは1対1の編集チームとチャットできます。編集アプリはすべての会話のリストを表示し、会話ごとにWhatsAppのようなチャットビューも表示します。
これまでのところ、とても良いです。すべてうまく動作します。しかし、私は安全性についての質問があります。チャット入力フィールドには、しかし、および
メッセージ
内の型、このHTML文はユーザー侵害された場合<div [innerHTML]="message.data.text"></div>
:最初のバージョンでは、編集アプリでメッセージの内容は、innerHTMLの文を使用してレンダリングされました私たちが望んでいないものです(スクリプトタグなどの悪意のある試みにつながる可能性があるため)。しかし、Angular2はJavaScriptをレンダリングできないほどスマートですが、あらゆる種類のコードインジェクションがカバーされているかどうかはわかりません。だから私は、これを変更:これは、すべてのHTMLを無視し、レンダリング
<div>{{ message.data.text }}</div>
<H1>メッセージ</H1 >
これは、これを行うための安全な方法ですか?または、まだいくつかの犯人はありますか?私はこの問題に取り組む最善の方法は、バックエンドのすべての安全でない入力を除外することです(これを行う信頼できる方法はありますか?)
ありがとう!