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
540
Other Decks in Technology
See All in Technology
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
450
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
490
穢れた技術選定について
watany
19
6.2k
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
500
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
890
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
290
Claude Mythos、Fable...フロンティアAIの最新動向と企業のセキュリティ対策
flatt_security
0
130
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
100
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.4k
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
520
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
7
3.2k
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
460
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Color Theory Basics | Prateek | Gurzu
gurzu
0
400
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Automating Front-end Workflow
addyosmani
1370
210k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
560
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Product Roadmaps are Hard
iamctodd
55
12k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
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 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ