Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Nuxt3のuseHeadを使ったらXSS脆弱性が顕在化した話
Search
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
98
バーチャルマーケット6からフロントエンドチームを作ってきたHIKKY社員によるバーチャルマーケットの Webフロントエンド裏話
skmt3p
0
340
Other Decks in Technology
See All in Technology
SREは、MCPとAutopilotをこう使え!
kazumax55
3
860
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
630
人間はどの意思決定を手放せるのか
kawasima
15
7.1k
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
130
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
31
26k
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
1
160
AI時代、データエンジニアが一番おもろい
genshun9
0
640
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1.3k
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.3k
絵ではじめるKubernetesセキュリティ
aoi1
3
640
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.6k
あるけみー式LTスライド作成術
alchemy1115
2
220
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
GraphQLとの向き合い方2022年版
quramy
50
15k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Designing for Performance
lara
611
70k
Docker and Python
trallard
47
4.2k
A better future with KSS
kneath
240
18k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Leo the Paperboy
mayatellez
10
2.3k
First, design no harm
axbom
PRO
2
1.3k
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を使い続けま す!! おしまい セキュリティに気をつけつつ...