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
- dangerouslySetInnerHTML
- ํน์ ๋ธ๋ผ์ฐ์ DOM์
innerHTML
์ ํน์ ๋ด์ฉ์ผ๋ก ๊ต์ฒดํ ์ ์๋ props __ html
์ ํค๋ก ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ง ์ธ์๋ก ๋ฐ์
- ํน์ ๋ธ๋ผ์ฐ์ DOM์
const __html = "<p><script>alert(1)</script><svg/onload=alert(origin)></p>"
<div dangerouslySetInnerHTML={{__html}}/>
- useRef
<div ref={divRef}>
- a ํ๊ทธ์ ์๋ชป๋ href, ์ด๋ฒคํธ ํ์ฉ ex) onclick, onload
๋ฐฉ์ง๋ฒ
- ์๋ํ์ด์ฆ & ์ด์ค์ผ์ดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: sanitize-html, DOMpurity, js-xss
- sanitize-html : allow list ๋ฐฉ์ = ์์
- ์ด์ค์ผ์ดํ๋?
- ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ์ ์ฅํ ๋, ์๋ฒ์์ ์งํํ๋ ๊ฒ์ด ํจ์จ์
- ํด๋ผ์ด์ธํธ์์ ์งํ ์ >> ์ฌ์ฉ์๊ฐ POST๋ curl์ ๋ ๋ ค์ ์ด์ค์ผ์ดํ๋ฅผ ์ฐํํ๋ ๋ฑ์ ๊ฐ๋ฅ์ฑ ์์