2024-04-23.md

๐Ÿก

DIL: ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋”ฅ ๋‹ค์ด๋ธŒ, 8์ฃผ์ฐจ-1

์Šคํ„ฐ๋””: ์›”๊ฐ„ CS, https://github.com/monthly-cs/2024-03-modern-react-deep-dive


DIL-week8-1_2024-04-23

| DIL ์ฃผ์ฐจ | ๋ฒ”์œ„ | ๋‚ด์šฉ | ์˜ค๋Š˜์ฐจ ์ง„๋„ | | -------- | ---------- | ---- | ----------- | | 8์ฃผ์ฐจ | 14์žฅ, 15์žฅ | | |

์˜ค๋Š˜ ์ฝ์€ ๋‚ด์šฉ์„ markdown์œผ๋กœ ๊ฐ„๋‹จํžˆ ๋ฉ”๋ชจ ์ค‘๊ฐ„ ์ €์žฅ


์›น ์‚ฌ์ดํŠธ ๋ณด์•ˆ์„ ์œ„ํ•œ ๋ฆฌ์•กํŠธ์™€ ์›นํŽ˜์ด์ง€ ๋ณด์•ˆ ์ด์Šˆ

  • ํ”„๋ก ํŠธ์—”๋“œ ๋ถ„์•ผ ๋˜ํ•œ ๋ณด์•ˆ ์œ„ํ—˜์„ฑ์ด ์ฆ๋Œ€ํ•˜๊ณ  ์žˆ๋‹ค. ์™ธ๋ถ€์— ์œ„ํ˜‘์—๋„ ์•ˆ์ „ํ•œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ฑ…์ž„

๋ฆฌ์•กํŠธ์™€ XSS

  1. dangerouslySetInnerHTML
    • ํŠน์ • ๋ธŒ๋ผ์šฐ์ € DOM์˜ innerHTML์„ ํŠน์ • ๋‚ด์šฉ์œผ๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋Š” props
    • __ html์„ ํ‚ค๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐœ์ฒด๋งŒ ์ธ์ˆ˜๋กœ ๋ฐ›์Œ
const __html = "<p><script>alert(1)</script><svg/onload=alert(origin)></p>"

<div dangerouslySetInnerHTML={{__html}}/>
  1. useRef
<div ref={divRef}>
  • a ํƒœ๊ทธ์— ์ž˜๋ชป๋œ href, ์ด๋ฒคํŠธ ํ™œ์šฉ ex) onclick, onload

๋ฐฉ์ง€๋ฒ•

  • ์ƒˆ๋‹ˆํƒ€์ด์ฆˆ & ์ด์Šค์ผ€์ดํ”„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: sanitize-html, DOMpurity, js-xss
  • sanitize-html : allow list ๋ฐฉ์‹ = ์•ˆ์ „
  • ์ด์Šค์ผ€์ดํ”„๋Š”?
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•  ๋•Œ, ์„œ๋ฒ„์—์„œ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ 
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง„ํ–‰ ์‹œ >> ์‚ฌ์šฉ์ž๊ฐ€ POST๋‚˜ curl์„ ๋‚ ๋ ค์„œ ์ด์Šค์ผ€์ดํ”„๋ฅผ ์šฐํšŒํ•˜๋Š” ๋“ฑ์˜ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ