🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

763閲覧

vue セキュリティ バックエンドからのHTML出力 安全性について

Yusuke_m25

総合スコア74

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/03/21 11:47

サーバーサイド から送られてくるJSON(HTMLの記述)をそのままサイト内の一部にレンダリングしたいです。
サーバーサイド から送られるHTMLコードは、管理ページで管理者が記述しており、ユーザーやその他部外者が入力するものではありません。

VUEのセキュリティに関するページでは

HTML の挿入

前述の通り、Vue では HTML コンテンツを自動でエスケープ処理し、誤って実行可能な HTML をアプリケーション内に挿入することを防いでいます。
ただし、HTML が安全なことが事前にわかっている場合は明示的にそれをレンダリングすることが可能です:

との記載がありました。
https://jp.vuejs.org/v2/guide/security.html#HTML-%E3%81%AE%E6%8C%BF%E5%85%A5

安全なことがわかっている場合とは、前述した「HTMLコードは、管理ページで管理者が記述しており、ユーザーやその他部外者が入力するものではありません。」と言う部分で安全であると判断して問題ないでしょうか?なにを持ってして安全と判断できるでしょうか...?

例えば、サーバーサイド から送られるJSONには悪意の無いHTMLコードが描かれいているとして、
フロント側に届くまでに改竄されると言うことがあり得ますか?無いです...よね...?

管理下にあるバックエンドからのHTMLコードJSONをHTMLとしてそのままレンダリングすることが
セキュリティ的に、厳しめに判断して、問題があるかどうかお伺いをしたいです!
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2021/03/21 12:33

逆に質問ですが、vueを通してレンダリングしたくない理由はありますか?
Yusuke_m25

2021/03/24 13:37

投稿ありがとうございます!! vueを通してレンダリングしたく無い理由は全くありません ただvueを通してレンダリングするには、レンダリングするHTMLが「安全であると事前に分かっている」必要があると記されており、 「安全である」ってどのレベルでだろう?と思ったのが質問のきっかけでした。
hentaiman

2021/03/24 14:40

> 「安全である」ってどのレベルでだろう? どんな値が入っているか全て把握出来ていて確実に問題が無いと分かっている場合ですね。Yusuke_m25さん以外がデータを操作できる環境がある場合はその時点で100%安全とは言えませんね。 で、例えばテンプレートエンジンでも変数は勝手にエスケープされて出力されますけど、(安全だと確定済みで)手間が掛かるだとか、特にエスケープされるとテンプレート側で実施したい処理が出来ないなどの理由が無い限りはエスケープしたまま使います。 vueは分からないけど、上と同じ理由でエスケープしたくない強い理由が無ければ通常は生での出力はしません。
guest

回答1

0

ベストアンサー

安全なことがわかっている場合とは、前述した「HTMLコードは、管理ページで管理者が記述しており、ユーザーやその他部外者が入力するものではありません。」と言う部分で安全であると判断して問題ないでしょうか?

安全と判断して問題ありません。ただし、管理者の悪意は想定しないものとします。

例えば、サーバーサイド から送られるJSONには悪意の無いHTMLコードが描かれいているとして、フロント側に届くまでに改竄されると言うことがあり得ますか?無いです...よね...?

通信路での改竄のことを言っているのであれば、HTTPSにしておけば大丈夫ですし、そもそも通信路で改竄できる前提なら、アプリ側でどのような対策をしてもXSS相当の問題が生じるのでどうしようもありません。

投稿2021/03/21 12:10

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yusuke_m25

2021/03/24 13:33

ありがとうございます!モヤモヤが晴れました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問