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
フロントエンドエンジニアのためのセキュリティ対策
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
CarstayJP
February 26, 2022
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
フロントエンドエンジニアのためのセキュリティ対策
CarstayJP
February 26, 2022
More Decks by CarstayJP
See All by CarstayJP
Google App Script(GAS)
carstayjp
0
450
C向けスタートアップのプロダクト開発の進め方
carstayjp
0
540
Other Decks in Technology
See All in Technology
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
240
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
160
徹底討論!ECS vs EKS!
daitak
0
160
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.3k
RAG を使わないという選択肢
tatsutaka
1
270
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
150
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
160
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.5k
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
1.3k
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
260
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
It's Worth the Effort
3n
188
29k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Exploring anti-patterns in Rails
aemeredith
3
410
New Earth Scene 8
popppiees
3
2.3k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Marketing to machines
jonoalderson
1
5.5k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Music & Morning Musume
bryan
47
7.2k
Transcript
ϑϩϯτΤϯυΤϯδχΞ ͓͖͍ͬͯͨηΩϡϦςΟରࡦ XSSฤ 2022/02/26
Carstayגࣜձࣾɿ֓ཁ 2
Carstayגࣜձࣾɿϛογϣϯ 3 Stay Anywhere, Anytime. ୭͕͖ͳͱ͖ʹɺ͖ͳॴͰɺ͖ͳਓͱաͤ͝ΔੈքΛͭ͘Δ
CarstayגࣜձࣾɿϓϩμΫτ 4 ʮCarstayʯຊͰ།ҰɺΩϟϯϐϯάΧʔͱंதധεϙοτΛ༧͢Δ͜ͱ͕Ͱ͖ΔεϚϗΞϓϦͰ͢ Βͳ͍ظؒʹ༡ٳं྆ΛγΣΞ͍ͨ͠Φʔφʔɺۭ͖Λ༗ޮ׆༻͍ͨ͠றंΦʔφʔ͕ొ͍ͯ͠·͢
ࣗݾհ Ngo Van Thang | ϑϧελοΫΤϯδχΞ ▼ ܦྺ ɾ2014ʹଔۀޙʹདྷ ɾ2014
ιʔγϟϧήʔϜӡӦձࣾʹೖࣾ ɹɾήʔϜαʔόӡ༻ ɾ2016 ݣձࣾʹೖࣾ ɹɾίʔσΟϯάςεταʔϏεɺLINE৴αʔϏε։ൃ ɾ2018 ϒϩοΫνΣʔϯձࣾʹೖࣾ ɹɾϒϩοΫνΣʔϯΛͬͨΫϦΤʔλͱاۀͷϚονϯάαʔϏεɺӽڥEC։ൃ ɾ2020 Carstayגࣜձࣾʹೖࣾ | Tech Lead ɹɾ։ൃશൠཧɺίʔυϨϏϡʔɺΣϒɾΞϓϦ։ൃ ▼झຯ ɾήʔϜʢΞΫγϣϯήʔϜɺFPS etcʣ ɾαοΧʔ ɾίϚϯυϥΠϯ͕͖ Ngo Van Thangʢ30ࡀʣ @nooptr https://www.facebook.com/thanghedspi 5
Agenda • ੬ऑੑ(XSS)ͷΈͱରࡦ • σϞ • ·ͱΊ 6
ΣϒαΠτͷ੬ऑੑͷछྨผʢʣ 7 11% 2% 2% 3% 11% 13% 58% https://www.ipa.go.jp/files/000082044.pdf
XSS ʢΫϩεαΠτɾεΫϦϓςΟϯά ʣ DNSใͷઃఆෆඋ SQLΠϯδΣΫγϣϯ ϑΝΠϧͷޡͬͨެ։ σΟϨΫτϦɾτϥόʔαϧ HTTPSͷෆదͳར༻ ͦͷଞ
XSS ΫϩεαΠτɾεΫϦϓςΟϯά
XSSʢΫϩεαΠτεΫϦϓςΟϯάʣͱ ར༻ऀ͕ೖྗͨ͠༰Λදࣔ͢ΔΑ͏ͳߏͷWebαΠτʹଘࡏ͢Δܽ ؕΛѱ༻ͯ͠ɺ߈ܸऀ͕༻ҙͨ͠ѱҙͷ͋ΔεΫϦϓτΛར༻ऀͷݩʹ ૹΓࠐΜͰ࣮ߦͤ͞Δ߈ܸख๏ɻ 9
XSSͷΈ 10 Source: https://yamory.io/blog/about-xss/
ReactͷXSS
dangerouslySetInnerHTML 12 ▪ dangerouslySetInnerHTMLͱ ɾReactެࣜͷΤεέʔϓΛແޮԽ͢ΔΦϓγϣϯ ɾHTMLͱͯ͠ೝ͍ࣝͤͨ͞߹ͳͲʹར༻͢Δ
dangerouslySetInnerHTML 13 ▪ dangerouslySetInnerHTMLͱ ɾReactެࣜͷΤεέʔϓΛແޮԽ͢ΔΦϓγϣϯ ɾHTMLͱͯ͠ೝ͍ࣝͤͨ͞߹ͳͲʹར༻͢Δ DEMO: https://codesandbox.io/s/react-xss-example-forked-9n3exm
dangerouslySetInnerHTML 14 ▪ରࡦɿ ɾΘͳ͍ɻͲ͏ͯ͠ར༻͍ͨ͠߹ɺపఈతʹΤεέʔϓΛߦ͏ɻ ɾdompurifyͳͲͷϥΠϒϥϦΛ͏͜ͱͰɺXSSͷΛղܾͰ͖Δɻ https://github.com/cure53/DOMPurify
hrefଐੑɺઌ಄͕javascript:͔Β࢝·Δ߹ͦΕҎ߱ͷจࣈྻΛ javascriptͱ࣮ͯ͠ߦ͞ΕΔ Javascript: εΩʔϜ 15
hrefଐੑɺઌ಄͕javascript:͔Β࢝·Δ߹ͦΕҎ߱ͷจࣈྻΛ javascriptͱ࣮ͯ͠ߦ͞ΕΔ Javascript: εΩʔϜ 16 DEMO: https://codesandbox.io/s/react-xss-example-forked-g8hs86
▪ରࡦɿ ɾεΩʔϜΛhttp:// ͔ https://ͷΈʹ੍ޚ͢Δ ɾઌ಄ʹ / Λ͚ͭΔ Javascript: εΩʔϜ 17
DEMO: https://codesandbox.io/s/react-xss-example-forked-g8hs86
JSON.stringify(str) 18 ੬ऑ෦ ҎԼͷؚ͕·ΕΔͱɺXSS͕ੜ͡Δ Server Renderingͷ࣌ʹɺReactଆͰ͑ΔΑ͏ʹɺԼهͷΑ͏ͳίʔυ͕͋Δ
19 ID/ύεϫʔυ͕࿙Εͳ͔ͬͨΒຊʹେৎʁ
20 ͦΜͳ͜ͱͳ͍Ͱ͢Α
21 DEMO
·ͱΊ
·ͱΊ 23 ɾ࠷ଟ͍੬ऑੑXSS ɾXSSରࡦʹจࣈྻΛΤεέʔϓ͢Δ ɾXSSͷݪཧΛΒͳ͍ͱɺ؆୯ʹXSSͷ੬ऑੑΛ࡞ΓࠐΜͰ͠·͏ͷͰɺXSSͷཧղඞཁ ɾID/ύεϫʔυΛΒͳͯ͘ɺCookieใ͕Θ͔ͬͨΒɺϩάΠϯͰ͖ͯ͠·͏ͷͰɺ PCΘͳ͍࣌ඞͣը໘ΛϩοΫ͠·͠ΐ͏
CarstayɺઈࢍΤϯδχΞืूதͰ͢ʂ 24 ˒ CTOީิΤϯδχΞ ɾϑϩϯτΤϯυΤϯδχΞ ɾΞϓϦΤϯδχΞ ɾαʔόʔαΠυΤϯδχΞ ։ൃݴޠɿTypescriptɹ։ൃϑϨʔϜϫʔΫɿReactJS, React NativeɹWebαʔόɿNodeJS
ͥͻ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ ⏬
25 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ