web-dev-qa-db-ja.com

Vueは、デフォルトで、XSSのセキュリティを提供または保護しますか?

私は保護する方法を理解しようとしています、

  • Angular
  • Vue
  • React

xSS攻撃に対して。 Angular公式ドキュメントにアクセスすると、

https://angular.io/guide/security

、それは言う:

XSSバグを体系的にブロックするには、Angularはデフォルトですべての値を信頼できないものとして扱います。プロパティ、属性、スタイル、クラスバインディング、または補間により、テンプレートからDOMに値が挿入されると、= Angular信頼できない値を無害化してエスケープします。

そしてまた:

Angularは、HTML、スタイル、URLの信頼できない値をサニタイズします。リソースURLには任意のコードが含まれているため、サニタイズすることはできません。開発モードでは、Angularは、サニタイズ中に値を変更する必要がある場合にコンソール警告を出力します。

そして:

Angularは値を安全ではないと認識し、自動的にサニタイズします。これにより、タグは削除されますが、要素などの安全なコンテンツは保持されます。

React=公式ドキュメントに行くと、

https://reactjs.org/docs/introducing-jsx.html#jsx-prevents-injection-attacks

、それは次のように言います:

JSXにユーザー入力を埋め込んでも安全です。

そして:

デフォルトでは、React DOMは、レンダリングする前にJSXに埋め込まれたすべての値をエスケープします。これにより、アプリケーションで明示的に記述されていないものを注入できないようにします。すべてがレンダリング前に文字列に変換されますこれは、XSS(クロスサイトスクリプティング)攻撃を防ぐのに役立ちます。

しかし、Vueの場合、XSS保護に関するドキュメントや、デフォルトで提供できるものは何も見つかりません。

私の質問:デフォルトでは、VueはXSS攻撃に対する保護の方法を提供していますか、それともサードパーティのソリューションを探す必要がありますか?

私がこの主題のためにグーグルするとき、私は例えば私のHTMLをサニタイズするためにこのプロジェクトを参照する多くのブログ投稿サイトと記事を手に入れます:

https://github.com/punkave/sanitize-html

10
Niek Jonkman

Vueには組み込みの消毒剤はありません。 Evan You's(Creator of Vue) comment について

組み込みのサニタイザーは、まれなユースケース(v-htmlのほとんどのユースケースが信頼できるコンテンツ用である場合)に追加のバンドルの重みを追加します。 Vue.prototype。$ sanitize = sanitizeHTMLを設定してsanitize-htmlを追加してから、v-html = "$ sanitize(html)"を実行するのも簡単です。

この投稿を確認してください: https://github.com/vuejs/vue/issues/63

7
dagalti