์๋
ํ์ธ์ HTTP ํค๋์ ์ผ๋ฐ์ ๋ณด, ํน๋ณํ ์ ๋ณด, ์ธ์ฆ๊ณผ ์ฟ ํค์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ ์ผ๋ฐ์ ๋ณด
- From : ์ ์ ์์ด์ ํธ์ ์ด๋ฉ์ผ ์ ๋ณด
- Referer : ์ด์ ์น ํ์ด์ง ์ฃผ์
- User-Agent : ์ ์ ์์ด์ ํธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด
- Server : ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ค๋ฆฌ์ง ์๋ฒ์ ์ํํธ์จ์ด ์ ๋ณด
- Date : ๋ฉ์์ง๊ฐ ์์ฑ๋ ๋ ์ง
From (์ ์ ์์ด์ ํธ์ ์ด๋ฉ์ผ ์ ๋ณด)
- ์ผ๋ฐ์ ์ผ๋ก ์ ์ฌ์ฉ๋์ง ์๋๋ค.
- ๊ฒ์ ์์ง ๊ฐ์ ๊ณณ์์, ์ฃผ๋ก ์ฌ์ฉ
- ์์ฒญ์์ ์ฌ์ฉํ๋ค.
Referer (์ด์ ์น ํ์ด์ง ์ฃผ์)
- ํ์ฌ ์์ฒญ๋ ํ์ด์ง์ ์ด์ ์น ํ์ด์ง ์ฃผ์
- A -> B๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ B๋ฅผ ์์ฒญํ ๋, Referer : A๋ฅผ ํฌํจํด์ ์์ฒญํ๋ค.
- Referer๋ฅผ ์ฌ์ฉํด์ ์ ์
๊ฒฝ๋ก ๋ถ์ ๊ฐ๋ฅ
- ์์ฒญ์์ ์ฌ์ฉ
์ด ์์๋ฅผ ๋ค์ด๋ณด๋ฉด ์ข ๋ ์ดํดํ๊ธฐ๊ฐ ์ฝ๋ค.
์๋ธ ๋
ธ๋ hello ์ํค๋ฐฑ๊ณผ ํ์ด์ง์ ๋ค์ด์ค๊ธฐ ์ , referer๋ ์ด์ ์น ํ์ด์ง ์ฃผ์๋ฅผ ๋ปํ๋๋ฐ ๋คํธ์ํฌ ์ชฝ์ ํ์ธํด๋ณด๋ฉด
referer : https://www.google.com/
์ด์ ์๋ ๊ตฌ๊ธ์์ ๋ค์ด์จ ๊ฒ์ ์ ์ ์๋ค.
User-agent (์ ์ ์์ด์ ํธ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด)
- user-agent : Mozilla/5.0
- ํด๋ผ์ด์ธํธ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด (์น๋ธ๋ผ์ฐ์ ์ ๋ณด, ๋ฑ๋ฑ)
- ํต๊ณ ์ ๋ณด
- ์ด๋ค ์ข
๋ฅ์ ๋ธ๋ผ์ฐ์ ์์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋์ง ํ์
๊ฐ๋ฅํ๋ค.
- ์์ฒญ์์ ์ฌ์ฉ
Server (์์ฒญ์ ์ฒ๋ฆฌํ๋ ORIGIN ์๋ฒ์ ์ํํธ์จ์ด ์ ๋ณด)
- Server : Apache/2.2.22(Debian)
- server : nginx
- ์๋ต์์ ์ฌ์ฉ
Date (๋ฉ์์ง๊ฐ ๋ฐ์ํ ๋ ์ง์ ์๊ฐ)
- Date : Tue, 15 Nov 1994 08:12:31 GMT
- ์๋ต์์ ์ฌ์ฉ
์ต์ ์คํ์์๋ ์๋ต์์๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
๐ ํน๋ณํ ์ ๋ณด
Host - ์์ฒญํ ํธ์คํธ ์ ๋ณด(๋๋ฉ์ธ) โจ์ ๋ง ์ค์!
-
์์ฒญ์์ ์ฌ์ฉ
-
ํ์
-
ํ๋์ ์๋ฒ๊ฐ ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ฒ๋ฆฌํด์ผ ํ ๋
-
ํ๋์ IP ์ฃผ์์ ์ฌ๋ฌ ๋๋ฉ์ธ์ด ์ ์ฉ๋์ด ์์ ๋
๊ฐ์ํธ์คํธ๋ฅผ ํตํด ์ฌ๋ฌ ๋๋ฉ์ธ์ ํ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ ์๋ฒ ์ค์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ๋ฌ๊ฐ ๊ตฌ๋๋ ์ ์๋ค. (IP: 200.200.200.2)
ํด์์ด์ธํธ ์ชฝ์์ /hello๊ฐ aaa.com์ ๋ค์ด๊ฐ์ง bbb.com์ ๋ค์ด๊ฐ์ง ccc.com์ ๋ค์ด๊ฐ์ง ๊ตฌ๋ถํ ๋ฐฉ๋ฒ์ด ์๋ค.
๊ทธ๋์ ๋๋ฉ์ธ์ Host ํค๋ ํ๋๋ฅผ ๋ฃ์ด์ ์๋ฒ์ ์ ๋ฌ์ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก โจHOST๋ ํ์์ด๋ค.โจ
Location (ํ์ด์ง ๋ฆฌ๋ค์ด๋ ์
)
- ์น ๋ธ๋ผ์ฐ์ ๋ 3xx ์๋ต์ ๊ฒฐ๊ณผ์ Location ํค๋๊ฐ ์์ผ๋ฉด, Location ์์น๋ก ์๋ ์ด๋(๋ฆฌ๋ค์ด๋ ํธ)
- ์๋ต์ฝ๋ 3xx์์ ์ค๋ช
- 201(Created) : Location ๊ฐ์ ์์ฒญ์ ์ํด ์์ฑ๋ ๋ฆฌ์์ค URI
- 3xx(Redirection) : Location ๊ฐ์ ์์ฒญ์ ์๋์ผ๋ก ๋ฆฌ๋๋ ์
ํ๊ธฐ ์ํ ๋์ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ฅดํจ๋ค.
Allow (ํ์ฉ ๊ฐ๋ฅํ HTTP ๋ฉ์๋)
- 405(Method Not Allowed)์์ ์๋ต์ ํฌํจํด์ผํจ
- Allow: GET, HEAD, PUT
POST๋ ์ ๊ณต์ ์ํ๋ค. ์ฌ์ค ์ด๊ฒ์ ์๋ฒ์์ ๋ง์ด ๊ตฌํ๋์ง ์๋๋ค. ์ฐธ๊ณ ๋ง ํ์๊ธธ!
Retry-After (์ ์ ์์ด์ ํธ๊ฐ ๋ค์ ์์ฒญ์ ํ๊ธฐ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ ์๊ฐ)
- 503(Service Unavailable) : ์๋น์ค๊ฐ ์ธ์ ๊น์ง ๋ถ๋ฅ์ธ์ง ์๋ ค์ค ์ ์๋ค
- Retry-After: Fri, 31 Dec 1999 23:59:59 GMT (๋ ์งํ๊ธฐ)
- Retry-After: 120 (์ด๋จ์ ํ๊ธฐ)
๐ ์ธ์ฆ
- Authorization : ํด๋ผ์ด์ธํธ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๋ฌ
- WWW-Authenticate : ๋ฆฌ์์ค ์ ๊ทผ์ ํ์ํ ์ธ์ฆ ๋ฐฉ๋ฒ ์ ์
Authorization (ํด๋ผ์ด์ธํธ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ๋ฌ)
- Authorization: Basic xxxxxxxxxxxxx
WWW-Authenticate (๋ฆฌ์์ค ์ ๊ทผ์ ํ์ํ ์ธ์ฆ ๋ฐฉ๋ฒ ์ ์)
- ๋ฆฌ์์ค ์ ๊ทผ์ ํ์ํ ์ธ์ฆ ๋ฐฉ๋ฒ ์ ์
- 401 Unauthorized ์๋ต๊ณผ ํจ๊ป ์ฌ์ฉ
- WWW-Authenticate : Newauth realm="apps", type=1, title="Login to \"apps\"", Basic realm="simple"
๐ ์ฟ ํค
- Set-Cookie : ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ฟ ํค ์ ๋ฌ (์๋ต)
- Cookie : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ๋ฐ์ ์ฟ ํค๋ฅผ ์ ์ฅํ๊ณ , HTTP ์์ฒญ์ ์๋ฒ๋ก ์ ๋ฌ
๋ก๊ทธ์ธ ์๋ฃํ, ๋ก๊ทธ์ธ ์ดํ welcome ํ์ด์ง์ ์ ๊ทผ์ ํ๋ฉด ํด๋ผ์ด์ธํธ ์ชฝ์ธ ์น๋ธ๋ผ์ฐ์ ์์๋ "์๋
ํ์ธ์ ํ๊ธธ๋๋" ์ ์ํ๋๋ฐ ๋ง์ ์๋ฒ์ชฝ์์๋ "์๋
ํ์ธ์. ์๋" ์ด๋ผ๋ ๋ฌธ๊ตฌ๋ก ๋ง์ดํด์ค๋ค.
Stateless
- HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด์ํ(Stateless) ํ๋กํ ์ฝ์ด๋ค
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ์ด ๋์ด์ง๋ค. (์๋ก ์ํ๋ฅผ ์ ์งํ์ง ์๋๋ค)
- ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ์์ฒญํ๋ฉด ์๋ฒ๋ ์ด์ ์์ฒญ์ ๊ธฐ์ตํ์ง ๋ชปํ๋ค.
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์๋ก ์ํ๋ฅผ ์ ์งํ์ง ์๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์์ฒญ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ๋ณด๋ด๋ฉด ๋๋ค.
์ ์ ์ ๋ณด๋ฅผ ๊ณ์ ์๋ฒ์ ์ฃผ๋ฉด ์๋ฒ๋ ๊ทธ๊ฑธ ๋ฐ์ ์๋
ํ์ธ์ ํ๊ธธ๋๋ ์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์๋ตํ๋ค. ํ์ง๋ง ์ด๋ด ๊ฒฝ์ฐ์๋ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๊ธด๋ค
๋ชจ๋ ์์ฒญ๊ณผ ๋งํฌ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํฌํจํด์ผํ๋ค. ๊ทธ๋ผ ๊ฐ๋ฐ์๋ ํ๋ค๊ณ ์๋นํ ๊ณจ์น์ํ์ง๋ค.
๋ชจ๋ ์์ฒญ์ ์ ๋ณด๋ฅผ ๋๊ธฐ๋ ๋ฌธ์
- ๋ชจ๋ ์์ฒญ์ ์ฌ์ฉ์ ์ ๋ณด๊ฐ ํฌํจ๋๋๋ก ๊ฐ๋ฐ ํด์ผํ๋ค (๊ฐ๋ฐ์๊ฐ ํ๋ฌ)
- ๋ธ๋ผ์ฐ์ ๋ฅผ ์์ ํ ์ข
๋ฃํ๊ณ ๋ค์ ์ด๋ฉด ? (์น์คํ ๋ฆฌ์ง์ ์ ์ฅํด์ ๋ค์ ๋๊ธฐ๋ฉด ๋๋๋ฐ ์ด๊ฒ ๋ํ ๊ฐ๋ฐ์๊ฐ ํ๋ค์ด์ง๋ค.)
๊ทธ๋์ ์ด๋ฐ ๊ฒ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ํ๋๊ฒ ๐ช์ฟ ํค๐ช์ด๋ค.
์น ๋ธ๋ผ์ฐ์ ๊ฐ ํ๊ธธ๋์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ก๊ทธ์ธ์ ํ๋ฉด ์๋ฒ๋ SET-Cookie๋ผ๊ณ ํด์ ์ ์ ๋ ํ๊ธธ๋์ด๋ผ๊ณ ํด์ ์ฟ ํค๋ผ๋ ๊ณณ์๋ค๊ฐ ๋ฃ๋๋ค. ์ด ํค๋๋ฅผ ๋ง๋ค์ด์ ์๋ต์ ํ๋ค. ๊ทธ๋ฌ๋ฉด ์น ๋ธ๋ผ์ฐ์ ๋ด๋ถ์๋ ์ฟ ํค ์ ์ฅ์์ user=ํ๊ธธ๋์ ์ ์ฅํด๋๋ค.
๋ก๊ทธ์ธ ์ดํ์ ์ด์ ์ฐ์ปด ํ์ด์ง์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด ์ฟ ํค์ ์ฅ์์ ๋ด๊ธด ํ๊ธธ๋์ ์ฐพ์์ ์๋ฒ์ ๋ณด๋ธ๋ค. ๊ทธ๋ผ ์๋ฒ๋ user๋ ํ๊ธธ๋์ด๋ค ํ๊ณ ์์๋จน๊ณ ์ฐ์ปด ํ์ด์ง์ ๋ค์ด๊ฐ ๋๋ง๋ค "์๋
ํ์ธ์ ํ๊ธธ๋๋" ์ด๋ผ๊ณ ๋ฌ๋ค.
์ด๋ ๊ฒ ์ฟ ํค ์ ์ฅ์์ ํ๊ธธ๋์ ๋ฃ์ด๋ ! ํ์ง๋ง ์ด๊ฒ ๋ณด์์ ์ทจ์ฝํ ์๋ ์๋ค. ๊ทผ๋ฐ ์ด๋ฐ ์ ์ ๋์ํ๋ ๋ฐฉ๋ฒ์ด ๋ ์์ ๐
-
์) set-sookie : sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; domain=google.com; Secure
-
์ฌ์ฉ์ฒ
-
- ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ธ์
๊ด๋ฆฌ
-
์ฟ ํค ์ ๋ณด๋ ํญ์ ์๋ฒ์ ์ ์ก๋จ
-
- ๋คํธ์ํฌ ํธ๋ํฝ ์ถ๊ฐ ์ ๋ฐ
- ์ต์ํ์ ์ ๋ณด๋ง ์ฌ์ฉ (์ธ์
์์ด๋, ์ธ์ฆ ํ ํฐ)
- ์๋ฒ์ ์ ์กํ์ง ์๊ณ , ์น ๋ธ๋ผ์ฐ์ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ถ์ผ๋ฉด ๐ ์น ์คํ ๋ฆฌ์ง ์ฐธ๊ณ
-
๐ ์ฃผ์ ๐
- ๋ณด์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์ ์ฅํ๋ฉด ์๋๋ค. (์ฃผ๋ฏผ๋ฒํธ, ์ ์ฉ์นด๋ ๋ฒํธ ๋ฑ๋ฑ)
์ฟ ํค - ์๋ช
์ฃผ๊ธฐ
์ฟ ํค๋ฅผ ๋ฌด์ ํ์ผ๋ก ๋ณด๊ดํ ์๋ ์์ผ๋ ์๋ช
์ฃผ๊ธฐ๋ฅผ ์ฃผ๋ฉด ๋๋ค.
-
Set-Cookie: expires=Sat, 26-Dec-202 04:39:21 GMT ๐(๊ธฐ๊ฐ)
- ๋ง๋ฃ์ผ ๋๋ฉด ์ฟ ํค ์ญ์
-
Set-Cookie: max-age=3600 (3600์ด) ๐(์๊ฐ)
- 0์ด๋ ์์๋ฅผ ์ง์ ํ๋ฉด ์ฟ ํค ์ญ์
-
์ธ์
์ฟ ํค : ๋ง๋ฃ ๋ ์ง๋ฅผ ์๋ตํ๋ฉด ๋ธ๋ผ์ฐ์ ์ข
๋ฃ์ ๊น์ง๋ง ์ ์ง
- ์น ๋ธ๋ผ์ฐ์ ์์ ํ ์ข
๋ฃํ๋ค๊ฐ ๋ค์ ํค๋ฉด ๋ค์ ๋ก๊ทธ์ธ ํด์ผ๋๋ ๊ฒฝ์ฐ๊ฐ ์ธ์
์ฟ ํค๋ค.
-
์์ ์ฟ ํค : ๋ง๋ฃ ๋ ์ง๋ฅผ ์
๋ ฅํ๋ฉด ํด๋น ๋ ์ง๊น์ง ์ ์ง
์ฟ ํค - ๋๋ฉ์ธ
- ์) domain=example.org
- 1. ๋ช
์ : ๋ช
์ํ ๋ฌธ์ ๊ธฐ์ค ๋๋ฉ์ธ + ์๋ธ ๋๋ฉ์ธ ํฌํจ
- domain=example.org๋ฅผ ์ง์ ํด์ ์ฟ ํค ์์ฑ
- example.org๋ ๋ฌผ๋ก ์ด๊ณ
- 2. ์๋ต : ํ์ฌ ๋ฌธ์ ๊ธฐ์ค ๋๋ฉ์ธ๋ง ์ ์ฉ
- example.org์์ ์ฟ ํค๋ฅผ ์์ฑํ๊ณ domain ์ง์ ์ ์๋ต
- example.org์์๋ง ์ฟ ํค ์ ๊ทผ
- dev.example.org๋ ์ฟ ํค ๋ฏธ์ ๊ทผ
์ฟ ํค - ๊ฒฝ๋ก (path)
- ์) path=/home
- ์ด ๊ฒฝ๋ก๋ฅผ ํฌํจํ ํ์ ๊ฒฝ๋ก ํ์ด์ง๋ง ์ฟ ํค ์ ๊ทผ
- ์ผ๋ฐ์ ์ผ๋ก path=/ ๋ฃจํธ๋ก ์ง์
- ์)
- path=/home ์ง์
- /home (์ ๊ทผ๊ฐ๋ฅ)
- /home/level1 (์ ๊ทผ๊ฐ๋ฅ)
- /home/level1/level2 (์ ๊ทผ๊ฐ๋ฅ)
- /hello (๋ถ๊ฐ๋ฅ) path๋ฅผ home์ผ๋ก ์ง์ ํ๋๋ฐ ์ฉ๋ฑ๋ง๊ฒ hello๋ก ํ๋ฉด ๋ ๋ฒจ์ด ์๋ง์์ ์ฟ ํค ์ ๋ฌ์ด ์๋๋ค.
์ฟ ํค - ๋ณด์
- Secure
- ์ฟ ํค๋ http, https๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์ ์ก (์๋ ์ฟ ํค๋ HTTP, HTTPS๋ฅผ ๊ตฌ๋ถํ๊ณ ์ ์กํ๋ค)
- Secure๋ฅผ ์ ์ฉํ๋ฉด https์ธ ๊ฒฝ์ฐ์๋ง ์ ์ก
- HttpOnly
- XSS ๊ณต๊ฒฉ๋ฐฉ์ง
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ทผ ๋ถ๊ฐ
- HTTP ์ ์ก์๋ง ์ฌ์ฉ
- SameStie
- XSRF ๊ณต๊ฒฉ ๋ฐฉ์ง
- ์์ฒญ ๋๋ฉ์ธ๊ณผ ์ฟ ํค์ ์ค์ ๋ ๋๋ฉ์ธ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ง ์ฟ ํค ์ ์ก