๐CS/Web13 [Web] Stateful vs. Stateless ์๋น์ค 1. Stateful Service Stateful '๊ตฌ์กฐ'๋ Server์ Client๊ฐ ์ธ์ ์ 'State(์ํ)'์ ๊ธฐ๋ฐํ์ฌ Client์ response๋ฅผ ๋ณด๋ ๋๋ค. ์ด๋ฅผ ์ํด ์๋ฒ ์ฌ์ด๋์ 'ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ๋์, ์ธ์ ์ํ ์ ๋ณด'๋ฅผ ์ ์ฅํ๋ค. TCP ๋ํ์ ์ธ Stateful ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ ํ๋กํ ์ฝ๋ก TCP๊ฐ ์๋ค. TCP์ 3-way handshaking ๊ณผ์ ์ ์๊ฐํด๋ณด๋ฉด, Server์ Client๋ 3-way handshaking ๊ณผ์ ์์ SYN๊ณผ SYNACK์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ์๋จ๊ฐ ์ธ์ '์ํ'๋ฅผ establishedํ '์ํ'๋ก ๋ง๋ ๋ค. ์ธ์ '์ํ'๊ฐ established๊ฐ ๋๋ฉด client์ server๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. ์ด๋ ๊ฒ TCP๋ ์ธ์ '์ํ'์ ๋ฐ๋ผ Ser.. 2021. 9. 26. [Web] ์คํฌ๋ํ vs ํฌ๋กค๋ง ์คํฌ๋ํ(Scraping) ์น ์ฌ์ดํธ ์์์ ์ํ๋ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๊ธฐ์ ์คํฌ๋ํผ๋ ํน์ ์น ์ฌ์ดํธ ๋๋ ํ์ด์ง์์ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ํ๋ก์ธ์ค์ด๋ค. ์คํฌ๋ํ์ ์ํํ๊ธฐ ์ํด์๋ ๋จผ์ ํ์ํ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ํด ์น ํฌ๋กค๋ง ๊ฐ์ ์์ ์ ์ํํด์ผ ํ๋ค. ์ฆ, HTTP๋ฅผ ํตํด ์น ์ฌ์ดํธ์ ๋ด์ฉ์ ์ถ์ถํ์ฌ ์ํ๋ ํํ๋ก ๊ฐ๊ณตํ๋ ๊ฒ์ด๋ค. ์ฝ๊ฒ ๋งํด ์น ์ฌ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋ชจ๋ ์์ ์ ๋ปํ๋ค. ex) ์ฃผ์ ์์ฅ ๋ฐ์ดํฐ, ๋น์ฆ๋์ค ๋ฆฌ๋, ๊ณต๊ธ์ ์ฒด ์ ํ ํฌ๋กค๋ง๋ ์ผ์ข ์ ์คํฌ๋ํ ๊ธฐ์ ์ด๋ผ๊ณ ํ ์ ์๋ค. ํฌ๋กค๋ง(Crawling) ์น ํฌ๋กค๋ฌ(์๋ํ ๋ด)๊ฐ ์ผ์ ๊ท์น์ผ๋ก ์น ํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ง ํ๋ ๊ฒ ํฌ๋กค๋ฌ๋ ์กฐ์ง์ , ์๋ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์๋์์ด๋ ์น(WWW)์ ํ์ํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด๋ค. ํฌ๋กค๋ง์ ํฌ๋กค๋ฌ๊ฐ ํ๋.. 2021. 8. 24. [Web] HTTP์ HTTPS ์ฐจ์ด์ HTTP HTTP(Hyper Text Transfer Protocol)๋ ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด๋ค. HTTP๋ ์ธํฐ๋ท์์ ํ์ดํผํ ์คํธ๋ฅผ ๊ตํํ๊ธฐ ์ํ ํต์ ๊ท์ฝ์ผ๋ก, 80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ๋ฐ๋ผ์ HTTP ์๋ฒ๊ฐ 80๋ฒ ํฌํธ์์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ 80๋ฒ ํฌํธ๋ก ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ค. HTTP๋ 1989๋ ํ ๋ฒ๋์ค ๋ฆฌ(Tim Berners Lee)์ ์ํด ์ฒ์ ์ค๊ณ๋์์ผ๋ฉฐ, WWW(World-Wide-Web) ๊ธฐ๋ฐ์์ ์ธ๊ณ์ ์ธ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋๋ฐ ํฐ ์ญํ ์ ํ์๋ค. WWW(World Wide Web)์ ๋ด์ฌ๋ ํ๋กํ ์ฝ์ด๋ค. ์ธํฐ๋ท์์ ์์(ํ์ผ, ์ด๋ฏธ์ง, ๋น๋์ค)์ ๊ตํํ๋ ํ๋กํ ์ฝ(์ฝ์, ๊ท์น) ๊ธฐ๋ณธ ํฌํธ 80 ํ์ดํผํ ์คํธ ๋ฌธ์๋ฅผ ํํํ๊ธฐ.. 2021. 8. 18. [Web] XSS์ CSRF(XSRF)์ ์ฐจ์ด์ ์ด์ ์ XSS์ CSRF ์ ๋ํ ๊ธ์ ์์ฑํ ์ ์ด ์์ง๋ง ๋ณต์ต๊ฒธ ์ฐจ์ด๋ฅผ ๋ถ๋ช ํ ํ๊ธฐ ์ํด ๋ค์ ์์ฑํ๋ค. 2021.04.25 - [๐CS/Web] - XSS(Cross-site Scripting) ๊ณต๊ฒฉ 2021.04.25 - [๐CS/Web] - CSRF(Cross-site Request Forgery) ๊ณต๊ฒฉ ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, XSS๋ ๊ณต๊ฒฉ๋์์ด Client์ด๊ณ , CSRF๋ Server์ด๋ค. XSS์ ์ฌ์ฉ์๊ฐ ํน์ ์น์ฌ์ดํธ๋ฅผ ์ ์ฉํ๋ ์ ์ ๋ ธ๋ฆฐ ๊ฒ์ด๋ผ๋ฉด, CSRF๋ ํน์ ์น์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ฉํ๋ ์ํ๋ฅผ ๋ ธ๋ฆฐ ๊ฒ์ด๋ค. ๋ฐ๋ผ์, XSS๋ ์ฌ์ดํธ๋ณ์กฐ๋ ๋ฐฑ๋์ด๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ๋ํ ์ ์ฑ๊ณต๊ฒฉ์ ํ๋ค. CSRF๋ ์์ฒญ์ ์์กฐํ์ฌ ์ฌ์ฉ์์ ๊ถํ์ ์ด์ฉํด ์๋ฒ์ ๋ํ ์ ์ฑ๊ณต๊ฒฉ์ ํ๋ค. XSS(.. 2021. 8. 4. [Web] Web Server ์ WAS์ ์ฐจ์ด Web Server ์น ๋ธ๋ผ์ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ ์ ์ ์ธ ์ปจํ ์ธ (.html .jpeg .css ๋ฑ)๋ฅผ ์ ๊ณตํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ ๋๋ ์น ํฌ๋กค๋ฌ)์ ์์ฒญ์ ์๋น์ค ํ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค. ์ ์ ์ธ ์ฝํ ์ธ ์ ๊ณต : WAS๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์์ ์ ๊ณต ๋์ ์ธ ์ปจํ ์ธ ์ ๊ณต์ ์ํ ์์ฒญ ์ ๋ฌ : ํด๋ผ์ด์ธํธ ์์ฒญ์ WAS์ ๋ณด๋ด๊ณ , WAS๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ(์๋ต)ํ๋ค. ํด๋ผ์ด์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ex) Apache Server, Nginx, IIS(Windows ์ ์ฉ Web ์๋ฒ) ๋ฑ ์์ง์์ค๋ ์ํ์น์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ ํ๋ก๊ทธ๋จ. ์ํ์น๋ C10K Problem์ด๋ผ๊ณ ํด์ ํ๋์ ์น์๋ฒ์ 10,000๊ฐ์.. 2021. 8. 4. [Web] GET๊ณผ POST ์ฐจ์ด GET ์๋ฒ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์กฐํํ๊ธฐ ์ํด ์ค๊ณ๋ ๋ฉ์๋ ์์ฒญ์ ์ ์กํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ Body์ ๋ด์ง ์๊ณ , query string์ ํตํด ์ ์กํ๋ค. ๋ถํ์ํ ์์ฒญ์ ์ ํํ๊ธฐ ์ํด ์์ฒญ์ด ์บ์๋ ์ ์๋ค. js, css, ์ด๋ฏธ์ง ๊ฐ์ ์ ์ ์ปจํ ์ธ ๋ ๋ฐ์ดํฐ๊ฐ ํฌ๊ณ , ๋ณ๊ฒฝ๋ ์ผ์ด ์ ์ด ๋ฐ๋ณตํด์ ๋์ผํ ์์ฒญ์ ๋ณด๋ผ ํ์๊ฐ ์๋ค. ์ ์ ์ปจํ ์ธ ๋ฅผ ์์ฒญํ๊ณ ๋๋ฉด ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ์บ์ํด๋๊ณ ๋์ผํ ์์ฒญ์ด ์์ ๋ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด์ง ์๊ณ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐ์ดํฐ๊ฐ URL์ ๋ํ๋๋ฏ๋ก ๋ณด์์ ์ทจ์ฝํ๋ค. POST ๋ฆฌ์์ค๋ฅผ ์์ฑ/๋ณ๊ฒฝํ๊ธฐ ์ํด ์ค๊ณ๋ ๋ฉ์๋ ์์ฒญ์ ์ ์กํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ Body์ ๋ด์์ ์ ์กํ๋ค. HTTP ๋ฉ์ธ์ง์ Body๋ ๊ธธ์ด์ ์ ํ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค. ๋ฐ๋ผ์ GET๊ณผ ๋ฌ๋ฆฌ.. 2021. 8. 3. CSRF(Cross-site Request Forgery) ๊ณต๊ฒฉ ๊ฐ๋ Cross-site Request Forgery(์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ)์ ์ฝ์ด๋ก ์ฌ์ฉ์๊ฐ ์์ ์ ์์ง์ ๋ฌด๊ดํ๊ฒ ๊ณต๊ฒฉ์๊ฐ ์๋ํ ํ๋์ ํด์ ํน์ ์น ํ์ด์ง๋ฅผ ๋ณด์์ ์ทจ์ฝํ๊ฒ ํ๊ฑฐ๋ ์์ , ์ญ์ ๋ฑ์ ์์ ์ ํ๊ฒ ๋ง๋๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ. ๊ณต๊ฒฉ ๋์ด๋๊ฐ ๋์ง ์์ ํํ ์ฌ์ฉ๋๋ค. XSS์ ์ด์ฉํ ๊ณต๊ฒฉ์ด ์ฌ์ฉ์๊ฐ ํน์ ์น์ฌ์ดํธ๋ฅผ ์ ์ฉํ๋ ์ ์ ๋ ธ๋ฆฐ ๊ฒ์ด๋ผ๋ฉด, CSRF๋ ํน์ ์น์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ฉํ๋ ์ํ๋ฅผ ๋ ธ๋ฆฐ ๊ฒ์ด๋ค. ๊ณต๊ฒฉ ๊ณผ์ ๋ง์ผ, ์น ํ์ด์ง๊ฐ ๋ ์์ ๊ฐ๋ฐ์ด ์๋ ์ธ๋ถ์์ ์ด๋ฏธ ๊ฐ๋ฐ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ ์กฐ๊ธ ์์ ํ ๊ฒ์ด๋ผ๋ฉด, ๊ณต๊ฒฉ์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํด๋น ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋งคํ์ฌ ๊ฐ์ธ ์๋ฒ์ ์ค์นํ๋ค. ๊ทธ ๋ค์์ ๊ณต๊ฒฉ ๊ฐ๋ฅ ํจํด์ ๋ถ์ํ๋ค. ์ฃผ๋ก ๊ณต๊ฒฉ์๋ค์ด ์ฐพ๋ ๊ฒ์ ์ฌ์ฉ์ ํจ์ค์.. 2021. 4. 25. XSS(Cross-site Scripting) ๊ณต๊ฒฉ ๊ฐ๋ Cross-site Scripting์ ์ฝ์๋ก ๊ฒ์ํ์ด๋ ์น ๋ฉ์ผ ๋ฑ์ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฝ์ ํด ๊ฐ๋ฐ์๊ฐ ๊ณ ๋ คํ์ง ์์ ๊ธฐ๋ฅ์ด ์๋ํ๊ฒ ํ๋ ์น ํดํน ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ด๋ค. ์ฃผ๋ก ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๊ณต๊ฒฉ์ด๋ค. SQL injection๊ณผ ํจ๊ป ์น ์์์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์ทจ์ฝ์ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ ์ผ์ข ์ด๋ค. ์ฃผ๋ก CSRF๋ฅผ ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ข ์ข CSRF์ ํผ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋, XSS๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ์ํค๋ ๊ฒ์ด๊ณ , CSRF๋ ํน์ ํ ํ๋์ ์ํค๋ ๊ฒ์ด๋ฏ๋ก ๋ค๋ฅด๋ค. (CSS๋ Cascading Style Sheets์ ์ฝ์ด๋ก ์ฌ์ฉ๋๊ณ ์์ด XSS๋ผ๊ณ ํ๋ค.) ์ข ๋ฅ Reflected XSS Stored XSS 1. Reflected XSS ๋ณดํต URL ํ๋ผ๋ฏธํฐ(ํนํ GET ๋ฐฉ์)์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ด ์๋ฒ์ .. 2021. 4. 25. [Web] param vs query vs body ๊ฐ๋ Request ๊ฐ์ฒด๋ API๋ฅผ ์ปจํธ๋กคํ๊ธฐ ์ํ ๋ฉ์๋๋ก ์๋ ์ธ๊ฐ์ง๋ฅผ ๋ด๊ณ ์๋ค. param query body req.param ์ฃผ์์ ํฌํจ๋ ๋ณ์๋ฅผ ๋ด๋๋ค. ์๋ฅผ ๋ค์ด https://naver.com/post/12345 ๋ผ๋ ์ฃผ์๊ฐ ์๋ค๋ฉด 12345๋ฅผ ๋ด๋๋ค. ์๋ฒ์์ Path Variable ๋ก ์นญํ๋ค. req.query ์ฃผ์ ๋ฐ๊นฅ, ? ์ดํ์ ๋ณ์๋ฅผ ๋ด๋๋ค. ์๋ฅผ ๋ค์ด https://naver.com/post?post_id=12345 ์ผ ๊ฒฝ์ฐ Node.js๋ฅผ ๋ด๋๋ค. &๋ก ์ฐ๊ฒฐํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธธ ์ ์๋ค. https://naver.com/post?post_id=1235&key=value ์๋ฒ์์ Query parameter ๋ก ์นญํ๋ค. req.body XML, JSON, Multi.. 2021. 4. 18. ์ด์ 1 2 ๋ค์