Google 検索の最初のページにあるすべての記事を読みました。せいぜい、スクリプト タグやその他の有害なコンテンツを削除するような漠然としたものです。基本的にそれだけですか?この「その他の有害なコンテンツ」とは何ですか?
ここでの最終目標は何ですか、私の懸念は何ですか?
これは通常何に使用されますか?html を含む可能性のある長い文字列をユーザーに入力させる場合、それを使用するのは合理的ですか? それとも、明示的にユーザーに html を生成させているときだけですか?
Google 検索の最初のページにあるすべての記事を読みました。せいぜい、スクリプト タグやその他の有害なコンテンツを削除するような漠然としたものです。基本的にそれだけですか?この「その他の有害なコンテンツ」とは何ですか?
ここでの最終目標は何ですか、私の懸念は何ですか?
これは通常何に使用されますか?html を含む可能性のある長い文字列をユーザーに入力させる場合、それを使用するのは合理的ですか? それとも、明示的にユーザーに html を生成させているときだけですか?
たとえば、Alice には、同じページで実行されるコード スニペットをユーザーが入力できるようにする SPA があり、そのコード スニペットはページにアクセスする他のユーザーにも表示されます。
ボブは、閲覧者の認証情報、つまりフロントエンドのアカウント ユーザー名とセッション ID、またはそれを行う外部スクリプトを使用して自分自身の端に HTTP 要求を挿入することにより、それらのページを閲覧した人に関する情報を取得できるようにする悪意のあるスニペットを挿入することにしました。同じ。
アリスはユーザーが何をしているか気になったので、ページを閲覧しました。彼女は、Bob が昇格された特権で彼女のセッション ID にアクセスできるようになったことをほとんど知りませんでした。
ボブはその後、前述のセッション ID を使用してアプリにアクセスし続け、自分のアカウントを管理者権限に昇格させ、アリスのアカウントを追い出して、内部の情報 (おそらくクレジット カード アカウントの詳細) を調べます。私はその場で織っているだけですが、アイデアはわかります。
一言で言えば、ユーザー入力をレンダリングさせる場合、すべてのユーザー入力を信頼すべきではありません。これが、不要なコードの実行を防ぐための ngSanitize の目的です。