セキュリティVue.js上で文字列を展開したい時があります。それは誰かが投稿したコメントをコンポーネント上に表示する時です。いった時コメントの改行が反映されていない場合、見栄えが悪くなります。改行を行う必要があります。HTML上の改行と言えばbrタグです。PHPにはnl2brという改行コードを改行タグに変換する組み込み関数があるぐらいです。Manual改行の実現でありがちで危険なアンチパターンはこのnl2br関数を用いたコメントをそのまま表示しようと考えるものです。Vue.jsにはv-htmlというディレクティブがあり、これを用いると普段かかっている安全装置のHTMLエスケープを外し、HTMLとしてパース、実行します。brタグとv-htmlを用いることで改行コードを改行タグに変換して表示できます。v-htmlはXSSをまあまあ容易に招く危険性を持ちます。危険というのは単純な<script>alert('XSS')</script>ぐらいならVueの仕組み上実行されず済むからです。AllowScriptAccess="always"></EMBED>の様な多少の変化球(scriptタグをbase64形式でエンコード、埋め込んだコード中でデコードして実行)であっさり破られるのでやはり危険です。脆弱性を容易に引き起こすので、ウェブサイトで動的に任意のHTMLを描画することは、非常に危険です。展開を利用してください。ユーザーから提供されたコンテンツに対しては決して使用してはいけません。Vue.jsこれの対策は実現したい機能に関しての実装を生のHTMLに頼るのでなく個々の別手法を用いるのが一番でしょう。改行に関してはCSSのwhite-space実現できます。MDN上記リンクから引用した次の表の’改行を残す’スタイルを用いればと生のHTML実行を用いるまでもありません。