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
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
550
Other Decks in Technology
See All in Technology
MIXIで活躍できるエンジニアを 若手社員目線で考えてみる
mixi_engineers
PRO
0
150
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
460
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
250
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
910
【Aiming】共通基盤なのに「共通化しない」課金・認証基盤「LINK」が選び取ったシングルテナント戦略と運用の秘訣
saikeda
0
190
AIのためのEthernet技術動向 (SerDes)
markunet
1
310
tamachi.go 誕生の裏側
rymiyamoto
1
200
内製AIチャットボット開発で学んだ Datadog Agent Observability活用術
mkdev10
0
130
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
270
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
1
500
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
500
Introduction to Bill One Development Engineer
sansan33
PRO
0
470
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
400
Unsuck your backbone
ammeep
672
58k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
630
Amusing Abliteration
ianozsvald
1
260
Odyssey Design
rkendrick25
PRO
2
770
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
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 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ