Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nuxt3のuseHeadを使ったらXSS脆弱性が顕在化した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
R.D.Sakamoto
February 17, 2023
Technology
3.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxt3のuseHeadを使ったらXSS脆弱性が顕在化した話
https://zenn.dev/skmt3p/articles/7c9028ea96f58c
R.D.Sakamoto
February 17, 2023
More Decks by R.D.Sakamoto
See All by R.D.Sakamoto
VR開発現場が考える『楽しい』メタバースをつくるには?
skmt3p
0
210
お金の力ではじめる札幌リモートワーク
skmt3p
1
95
バーチャルマーケット6からフロントエンドチームを作ってきたHIKKY社員によるバーチャルマーケットの Webフロントエンド裏話
skmt3p
0
320
Other Decks in Technology
See All in Technology
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
210
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
240
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
12
8.4k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
120
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
420
強化学習「理論」入門
enakai00
3
3.6k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
450
Goでデータパイプラインを作ろう
sansantech
PRO
1
360
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
530
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
Tell your own story through comics
letsgokoyo
1
1k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
エンジニアに許された特別な時間の終わり
watany
108
250k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
740
Utilizing Notion as your number one productivity tool
mfonobong
4
520
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Transcript
Nuxt3のuseHeadを使ったら XSS脆弱性が顕在化した話 2023/02/16 (Fri) Vue.js v-tokyo Meetup #16
自己紹介 ▪ R.D.Sakamoto(あーるでぃーさかもと ) ▪ アバターはゴリラの方です! ▪ EE法人OmusBridge OÜ CEO
▪ VR法人HIKKY Web Frontend Chief ▪ Nuxt3は自社でも所属企業でも使ってる ▪ 今年は外向けの活動がんばるおじさん ▪ [宣伝] MyVketとバーチャルマーケット
ハンズオン
兎にも角にも、まずは試す! - Repl; - https://stackblitz.com/edit/nuxt-starter-nynkwv?file=README.md - useHead - Nuxt3 Composablesのひとつ。setupで使える。
- headのtitle, description, meta, link, scriptなどを書き換えられる - vue-head、vue-meta - XSS(クロスサイトスクリプティング) = - Webサイトにおける脆弱性のひとつ。 - 任意のscriptを動かせる。自サービスで顕在化するととても怖い。
ぴえん - Zenn - https://zenn.dev/skmt3p/articles/7c9028ea96f58c - ユーザーインプットを DBに登録できた前提で、そのインプットをとってきて Refに格納。 inputのデフォルトとして表示するケースを想定。
- Nuxt3.0.0においてアラートが発出される - どうしたかはZenn参照 - 当該issues自体の進捗は、2/16 AM時点でほぼ無し - ユーザー入力文字をheadに入れる事自体はSSRのよくある話 - Twitterのようにuser nameをtitleとしてタブに表示させる。 - og:title, og:descriptionにユーザー情報を表示させる。
ハンズオン(最新版!)
Nuxt 3.2.0ではどうなっているのか? - 今回の登壇のために用意したRepl; - https://stackblitz.com/edit/nuxt-starter-nynkwv?file=README.md - さっきのやつをシンプルに Nuxt 3.2.0にしてみました!
- issuesの方には進捗無いけど...頼むぞ!!! - https://github.com/vueuse/head/issues/173 - このissuesで似たような話はやりとりされているが ...
やったか? - とりあえずinputが表示された!そう!これでいいんだよ!ありがとう Nuxt!! Thank you Nuxt!! - 一応、念のため、もっと愚直に書いてみよう Repl2;
- https://stackblitz.com/edit/nuxt-starter-nynkwv?file=README.md - さっきの例の内側にもう 1個`window.alert`を仕込む - NuxtとかStackBlitz側のDOM構成が変わったかもしれないし。 - まあ大丈夫やと思うけど ...
あ...... - 根本対応はまだできていない模様 - useHeadSafeがくるのが待ち遠しいですね - https://github.com/nuxt/nuxt/issues/15668 - 皆様も他人事とは思わずお気をつけください。 -
headのDOM構成によって、再現条件がかわります - 再現するのすら結構面倒でした - これを読めば「ヨシ!」だと思っていませんか?ここには当然載ってないです - https://ja.vuejs.org/guide/best-practices/security.html - dependabotやsentryの導入などできることから - Nuxt Securityというmoduleもあるらしい - https://nuxt.com/modules/security/ - 最近Twitterでみたセキュリティ本を買いました。 - とても易しい...!こつこつと読み進めていきます!
それでも!これから も!Nuxtを使い続けま す!! おしまい セキュリティに気をつけつつ...