[๊ธฐ๋ก์ผ์ง] ๐ 03์ฃผ์ฐจ (๋ก๊ทธ์ธ ๋ก์ง/์ ์ง)
๋ก๊ทธ์ธ์ ๋ํ ์ดํด
๋ก๊ทธ์ธ์ด๋ ๋ฌด์์ธ๊ฐ?
๋ค์ค ์ฌ์ฉ์ ์์คํ ์ ์ฌ์ฉํ๊ธฐ ์ํ์ฌ ์ปดํจํฐ์ ์ฌ์ฉ์์์ ์๋ฆฌ๋ ์ผ์ด๋ค.
(์ฆ, ์ปดํจํฐ๊ฐ ๊ทธ ์ฌ๋์ด ๋ง๋์ง๋ฅผ ํ์ธํ๋ ์์ )
- ๋ก๊ทธ์ธ์ ๊ณผ์ ์ ์๋ณ๊ณผ ์ธ์ฆ์ ๋ ๋จ๊ณ๊ฐ ์กด์ฌํ๋ค.
- ์๋ณ / ์ธ์ฆ
๊ทธ๋ ๋ค๋ฉด ์๋ณ์ ๋ฌด์์ด๊ณ , ์ธ์ฆ์ ๋ฌด์์ธ๊ฐ? (๊ทธ๋ฆฌ๊ณ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ?)
์๋ณ์ด๋?
์๋ณ (Identification) : ์๋ง์ ๋ฐ์ดํฐ ์ค์ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ด๋(๊ฐ๋ ค๋ด๋) ๊ฒ
- ex) ํ์ ์ ๋ณด์์ ์๋ง์ ๊ณ ๊ฐ ์ค์ ํน์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ด๋ ค๋ฉด, ์ด๋ฆ๊ณผ ๊ฐ์ด ๋๋ช ์ด์ธ์ด ์กด์ฌํ ์ ์๋ ๋ฐ์ดํฐ๋ก๋ ์๋ณ ๋ถ๊ฐ๋ฅ. (๋ฐ๋ผ์ '์์ด๋'๋ฅผ ์ด์ฉํ๋ ๊ฒ)
- ์์ ์์์ ๊ฐ์ด ์๋ณ์ ๋ณด๋ ์ค๋ณต์ด ๋ถ๊ฐ๋ฅํ ์ ๋ํฌ(Unique)ํ ๊ฐ์ด์ฌ์ผ ํจ
- ex) ID๋ PK๋ก ์ค์ ๋์ด ์ด๋ฏธ DB์ ์กด์ฌํ๋ฉด ๋ค์ด๊ฐ์ง ์๋๋ก, ์ค๋ณต๋์ง ์๋๋ก ์ค์
- (PK๋ ์ ๋๋ก ์ค๋ณต๋์ง ์๊ฒ ๋๋ ์ค์ )
๊ทธ๋ ๋ค๋ฉด ์๋ณ ์ ๋ณด์๋ ์ด๋ค๊ฒ์ด ์์๊น?
์๋ณ์ ๋ณด๋ ํต์์ ์ธ ์๋ณ ์ ๋ณด์ ๊ณ ์ ์๋ณ ์ ๋ณด๊ฐ ์กด์ฌ
์๋ณ ์ ๋ณด vs ๊ณ ์ ์๋ณ ์ ๋ณด
๋ฌด์จ ์ฐจ์ด์ผ๊น?
- ์๋ณ์ ๋ณด๋ผ๋ ๊ฒ์ ๋๊ตฌ๋๊ฐ ๋ด๋, ๋๊ตฌ์๊ฒ ๊ณต๊ฐ๋์ด๋, ์๊ด์ด์๋ ์ ๋ณด
- BUT ! , ๊ณ ์ ์๋ณ ์ ๋ณด๋ ๋ ธ์ถ์ด๋๋ฉด ์ํํ๋ค๊ณ ํ๋จ๋จ
- ๊ณ ์ ์๋ณ ์ ๋ณด๋ ์ด ์ ๋ณด๋ง ๊ฐ์ง๊ณ ๋, ์ด ์ธ์(ํน์ ๊ตญ๋ด)์์ ๊ทธ ์ฌ๋์ ์๋ณํ ์ ์๋ ์ ๋ณด
- ex) ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ์ด์ ๋ฉดํ๋ฒํธ, ์ฌ๊ถ๋ฒํธ (ํต์์ ์ผ๋ก ๋ณธ์ธํ์ธ์ ์ํ ์ ๋ถ์ฆ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒ๋ค)
๋ฐ๋ผ์ ์น ํจํท์ ๋ถ์ํ๋ค ๋ณด๋ ID, ์ฌ๋ฒ์ด ๋ ธ์ถ๋๋ค๋ฉด?
์ด๊ฒ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง
๋ง์ฝ ์น ํจํท ๋ถ์ ์ค์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๊ฐ ํ๋ฌธ์ผ๋ก ์๋ค๊ฐ๋ค ํ๋ค๋ฉด?
๊ณ ์ ์๋ณ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ทจ์ฝ์ ์ด๋ผ๊ณ ํ๋จ!!
์ธ์ฆ์ด๋?
์ธ์ฆ(Authentication) : ๊ทธ ์ฌ๋์ด ๋ณธ์ธ์ด ๋ง๋์ง ํ์ธํ๋ ์์
- ์ธ์ฆ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ
- ํํ ์ฌ์ฉํ๋ ์ธ์ฆ ์ ๋ณด : ๋น๋ฐ๋ฒํธ (์์ด๋๋ ์๋ณ์ ๋ณด)
๋ก๊ทธ์ธ์ด๋?
๋ก๊ทธ์ธ์ ์์ ์๋ณ๊ณผ ์ธ์ฆ์ ๋ชจ๋ ์ด์ฉํ๋ ๊ฒ
- ๋ก๊ทธ์ธ == ์๋ณ + ์ธ์ฆ -> ID์ PW๋ฅผ ํจ๊ป ์ ๋ฌ ํ๋ค๋ ๊ฒ
- ์๋ณ์ ์๋ง์ ์ฌ๋๋ค ์ค ๊ทธ ์ฌ๋์ ์ง์ด๋ด๋ ๊ฒ์ผ ๋ฟ
- ์ง์ด๋ด๊ธฐ๋ง ํด์๋ ์๋ฏธ๊ฐ ์์
- ๊ทธ ์ฌ๋์ด ๋ง๋์ง ํ์ธ์ด ํ์. ๊ทธ๊ฒ์ด ์ธ์ฆ!
๋ก๊ทธ์ธ ๋ก์ง
- select * from member where id='gear' (์๋ณ)
- -> ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋์ง ํ์ธ (์ธ์ฆ)
- (์๋ณ๊ณผ ์ธ์ฆ์ ์ฐจ์ด ๋๋ฌธ์ ์์ด๋๋ ๋ ธ์ถ๋๋ ์๊ด์๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ์์ ๊ทธ๋๋ก ์ ๋ ฅ๋์ง๋ง, ๋น๋ฐ๋ฒํธ๋ ๋ณ(*)๋ก์ ํ๊ธฐ๋๋ ๊ฒ)
์ธ์ฆ ์ ๋ณด๋ ์ ๋๋ก ํ์ธ์๊ฒ ์๋ ค์ฃผ์ด์๋ ์๋จ!!
(์ธ์ฆ ์ ๋ณด๋ ๋ณดํธํด์ผ ํจ)
๊ฒฐ๋ก : ์ธ์ฆ์ ๋ณด๋ ์ ์ถ๋๋ฉด ์ํ !!
์๋ณ๊ณผ ์ธ์ฆ์ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธ์ ์ด๋ค์์ผ๋ก ๋ง๋ค์ด ์ง๋๊ฐ?
๋ก๊ทธ์ธ ๋ก์ง ์ผ์ด์ค
- (๋ก๊ทธ์ธ์ ๋ก์ง์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ์ง๋ง ์๋ณ๊ณผ ์ธ์ฆ์ ํ์, ๊ทธ ๋ฐฉ์์ด ๋ค๋ฅผ ๋ฟ)
(1) ์๋ณ / ์ธ์ฆ ๋์
- DB ์ง์๋ฅผ ํ๋ฒ์ ์ํํ์ฌ ๋ก๊ทธ์ธ ๊ตฌํ.
- (์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ๋ฒ์ ํ์ธ)
$sql = "select * from member where"
$sql .="id='$user_id' and pass='$user_pass"
"select * from member where id='____' and pass='____"
$sql.execute();
if($ret){
// ๋ก๊ทธ์ธ ์ฑ๊ณต
}else{
// ๋ก๊ทธ์ธ ์คํจ
}
- ์์ด๋ and ๋น๋ฐ๋ฒํธ correct -> ๋ต์ด ๋์ด
- ์์ด๋ or ๋น๋ฐ๋ฒํธ uncorrect -> ๋ต์ด ์๋์ด
- ๋ฐ๋ผ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฉด (if($ret)์ด ์ฐธ์ด๋ฉด) ์ฑ๊ณต ๊ทธ๋ ์ง ์์ผ๋ฉด ์คํจ (๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ์ ๋์ค๋)
(2) ์๋ณ / ์ธ์ฆ ๋ถ๋ฆฌ
sql = select * from member where id='____'
//(or) select pass from member where id='____'
//------> ์๋ณ
$db_pass = sql.ret['pass']
if($db_pass == $user_pass){
// ๋ก๊ทธ์ธ ์ฑ๊ณต
}else{
//๋ก๊ทธ์ธ ์คํจ
}
//------> ์ธ์ฆ
- ๋จผ์ ์์ด๋๋ฅผ ์ด์ฉํ ์๋ณ๊ณผ์ ์ ๊ฑฐ์น๊ณ , ์ดํ์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ์ธ์ฆ ๊ณผ์ ์ ๊ฑฐ์นจ
(+) HASH
HASH๋?
ํด์ ํจ์(Hash function) : ์์์ ๊ธธ์ด๋ฅผ ๊ฐ๋ ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ ๋ฐ์ดํฐ๋ก ๋งคํํ๋ ๋จ๋ฐฉํฅ ํจ์
- ๋จ๋ฐฉํฅ ํจ์์ด๊ธฐ ๋๋ฌธ์ ์ด์ ์ ํ๋ฌธ์ ์ ์๊ฐ ์์
- (๋ ธ์ถ๋์ด๋ ํ ๋ฒ์ ์์ )
- ์ด ๋น๋ฐ๋ฒํธ๊ฐ ๋ญ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, hash๋ก ๋ฐ๊พธ๊ณ ๋๋ฉด ๊ฐ์์ง ์๋์ง๋ ํ์ธ์ด ๊ฐ๋ฅ
๊ทธ๋ผ ์ํธํ์๋ ๋ค๋ฅธ๊ฒ์ธ๊ฐ?
์ํธํ(enciphering, encryption) : ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ํ ๋ฌธ์์ ๊ธ์๋ก ๋ด์ฉ์ ๋ชจ๋ฅด๊ฒ ๋ชจ์/ํํ๋ฅผ ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๊ฒ
์ธ์ฝ๋ฉ(encoding) : ์ด๋ค ๋ฐ์ดํฐ์ ๋ชจ์/ํํ๋ฅผ ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๊ฒ (๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋ณด๋ด๊ธฐ ์ํด์ ์ธ์ฝ๋ฉ์ ์ฌ์ฉ)
ํด์(hash) : ์ด๋ค ๋ฐ์ดํฐ์ ๋ชจ์/ํํ๋ฅผ ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๊ฒ
- ๋ชจ์๊ณผ ํํ๋ฅผ ๋ฐ๊พผ๋ค๋ ๊ฒ์ ์์ด์ 3๊ฐ์ง๊ฐ ๋น์ทํ๊ฒ ๊ฐ์ง๋ง, ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด ์กด์ฌ
- ์ํธํ์ ์ธ์ฝ๋ฉ์ ๋ณตํธํ์ ๋์ฝ๋ฉ์ด๋ผ๋ ๊ณผ์ ์ ํตํด ์์ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ์ง๋ง
- ํด์๋ ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ๊ฐ๋ฅํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ธฐ์กด์ ๋ชจ์/ํํ๋ก ๋์๊ฐ ์ ์์
(3),(4) (์๋ณ/์ธ์ฆ) ๋์ · ๋ถ๋ฆฌ (+) HASH
- ๋ฐ๋ผ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํ ๋ HASHํ ํด์ ์ด์ฉ
- ๋ก๊ทธ์ธ์ ์ง์ฅ X
- ๋น๊ตํ๋๋ฐ ๋ฌธ์ X
- ๋ง์ฝ DB๊ฐ ํฐ์ก์ ๋(ํดํน ๋นํ์ ๋) ํด์ ์ฒ๋ฆฌ๊ฐ ๋์ด์์ผ๋ฉด ํ๋ฒ์ ์์ ํจ
- (๋น๋ฐ๋ฒํธ๊ฐ ๊ทธ๋๋ก ๋ ธ์ถ๋์ด ์๋ค๋ฉด) ํฌ๋ฆฌ๋ด์ ์คํฐํ์ ์ํ์ด ์กด์ฌ
- (hash๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ํฌ๋ฆฌ๋ด์ ์คํฐํ์ผ๋ก ๋ถํฐ ๋ณดํธ)
๋ก๊ทธ์ธ ๋ก์ง ์ผ์ด์ค (1) ~ (4) ๊ตฌํ
๋ก๊ทธ์ธ ๋ก์ง์ ๋ํ ๊ณ ๋ฏผ
๋ก๊ทธ์ธ ์ ์ง ๋ฐฉ๋ฒ์ ๋ํ ์ดํด
๋ก๊ทธ์ธ ์ ์ง
์ด๋ค ์ฌ์ดํธ์ ํ ๋ฒ ๋ก๊ทธ์ธ ํ๊ณ ๋๋ฉด, ์ฌ์ดํธ ๋ด ์ฌ๋ฌ ํ์ด์ง๋ค์ ์ ์ํ ๋ ๋ก๊ทธ์ธ์ด ์ ์ง๋๊ฑฐ๋, ํน์ ID/PW๊ฐ ๊ธฐ์ต๋์ด ๋์ค์ ์ฌ์ ์ํ๋๋ผ๋ ๋ค์ ์ ๋ ฅํ์ง ์๊ณ ์๋ ๋ก๊ทธ์ธ๋๋ ๊ฒฝ์ฐ๊ฐ ์์
๋ฐ๋ฉด, ๋ช ๋ถ ์ ๋ ํด๋น ์ฌ์ดํธ๋ฅผ ์ด์ฉํ์ง ์์๋ค๊ณ ์ธ์ ์ด ๋ง๋ฃ๋์๋ค๋ ํ์ด์ง๊ฐ ๋จ๋ฉฐ ๋ก๊ทธ์ธ์ ๋ค์ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์๋ ์์
์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๋ ๊ฑธ๊น?
HTTP์ ํน์ฑ
- HTTP๋ ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ์ํ ์๋ฒ-ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ ํ๋กํ ์ฝ๋ก์, ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ(request)๋ฅผ ๋ณด๋ด๋ฉด ์๋ฒ๋ ์๋ต(response)๋ฅผ ๋ณด๋์ผ๋ก์จ, ๋ฐ์ดํฐ๋ฅผ ๊ตํ
- HTTP๋ ๋น์ฐ๊ฒฐ์ฑ(connectionless), ๋ฌด์ํ์ฑ(stateless)์ด๋ผ๋ ํน์ง์ ๊ฐ์ง๊ณ ์์
- HTTP๋ ์์ฒญ์ ๋ํ ์๋ต์ ์ฒ๋ฆฌ ์๋ฃํ๊ฒ ๋๋ฉด, ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฐ๋ค๋ ๊ฒ
- ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ์ ๋ํ ์ด์ ์ ์ํ ์ ๋ณด ๋ฐ ํ์ฌ ํต์ ์ ์ํ๊ฐ ๋จ์์์ง ์๊ฒ ๋๋ค๋ ๊ฒ
1) Connectionless Protocol ๋น์ฐ๊ฒฐ์งํฅ(๋น์ฐ๊ฒฐ์ฑ)
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญํ์ ๋, ๊ทธ ์์ฒญ์ ๋ง๋ ์๋ต์ ๋ณด๋ธ ํ ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฌ๋ ์ฒ๋ฆฌ ๋ฐฉ์
2) Stateless Protocol ๋ฌด์ํ์ฑ(์ํ ์ ๋ณด ์ ์ง ์ํจ)
ํด๋ผ์ด์ธํธ์ ์ฒซ๋ฒ์งธ ํต์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์๋ค ํ๋๋ผ๋, ๋๋ฒ์งธ ํต์ ์์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ์ง ์์
- ์๋ฒ๋ ๋ค์์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๊ณ์ ์ ์งํ๊ฒ ๋๋ฉด ์์ ๋ญ๋น๊ฐ ๋ค๋ฐ๋ฅด๊ฒ ๋จ
- ๋น์ฐ๊ฒฐ์ฑ ๋ฐ ๋ฌด์ํ์ฑ์ ํน์ง์ ๊ฐ์ง์ผ๋ก์จ ์์ ๋ญ๋น๋ฅผ ์ค์ด๋ ๊ฒ
- ๊ทธ๋ฌ๋, ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ ์ ์๊ฒ๋๋ค๋ ๋ฌธ์ ๊ฐ ์์
- ๋ก๊ทธ์ธ์ ํ๋๋ผ๋, ๋ค์ ์์ฒญ์์๋ ํด๋น ํด๋ผ์ด์ธํธ๋ฅผ ๊ธฐ์ตํ์ง ๋ชปํ๋ฏ๋ก ๋ ๋ก๊ทธ์ธ์ ํด์ผํ๋ค๋ ๊ฒ
- ํ ๋ฒ ๋ก๊ทธ์ธ์ ํ๋ค๋ฉด ์ฅ์๊ฐ ์ฌ์ฉํ์ง ์๊ฑฐ๋, ๋ก๊ทธ์์์ ํ์ง ์๋ ์ด์ ๋ก๊ทธ์ธ์ ์ ์ง๋์ด์ผ ํจ
- (๋๋๋ง๋ค ๋ก๊ทธ์ธ์ ๋ค์ํด์ผ ํ๋ค๋ฉด.... ์์ํ๊ธฐ ํ๋ฌ)
๊ทธ๋ ๋ค๋ฉด ๋ก๊ทธ์ธ์ ์ด๋ป๊ฒ ์ ์งํ๋๊ฐ?
HTTP์ ๋น์ฐ๊ฒฐ์ฑ ๋ฐ ๋ฌด์ํ์ฑ์ ๋ณด์ํ๊ธฐ ์ํด ์ฟ ํค(Cookie) ์ ์ธ์ (Session)์ด ์ฌ์ฉ๋จ
์ฟ ํค์ ์ธ์
์ฟ ํค(Cookie)
- ์ฌ์ฉ์๊ฐ ์ด๋ค ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ธํฐ๋ท ์ฌ์ฉ์์ ์ปดํจํฐ๋ ๋ค๋ฅธ ๊ธฐ๊ธฐ์ ์ค์น๋๋ ์์ ๊ธฐ๋ก ์ ๋ณด ํ์ผ
- ์ฟ ํค๋ Set-Cookie HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋๋ฉฐ, ์ด๋ ์น ์๋ฒ์ HTTP ์๋ต์ ํตํด ์ก์ ๋๊ณ , ์ด ํค๋๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ฟ ํค๋ฅผ ์ ์ฅํ๊ณ ์ฐจ๊ธฐ ์๋ฒ ์์ฒญ์ ์ก์ ํ ์ง๋ฅผ ์ง์
- ์ด์ฐฝ๊ธฐ์ ์น์๋ฒ๋ ๋ก๊ทธ์ธ์ ์ ์งํ๊ธฐ ์ํด ์ฟ ํค๋ฅผ ์ฌ์ฉ
- ๊ทธ๋ฐ๋ฐ ์ฟ ํค์๋ ์น๋ช ์ ์ธ ๋ฌธ์ ๊ฐ ์กด์ฌ
์ฟ ํค์ ์ถ๋ฐ์ง๋ ํด๋ผ์ด์ธํธ
-> ์ฌ์ฉ์๋ ํด๋ผ์ด์ธํธ
-> ์์ด๋ฌ๋ํ๊ฒ๋ ํด์ปค๋ ์ด์ฉ์์ด๊ธฐ์ ํด๋ผ์ด์ธํธ
-> '์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ธก์ ์์ฅ๋๊ธฐ ๋๋ฌธ์'
-> ๋ง์๊ป ๋ฐ๊ฟ ์ ์์
- ์ฟ ํค๋ณ์กฐ๋ฅผ ํตํด ๋ค๋ฅธ์ฌ๋์ผ๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํด์ง๋ค๋ ๊ฒ
- ์ด๋ฌํ ๋จ์ ์ผ๋ก ์ธํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ์๋ ์๋ฒ์ ์ ์ฅํ๊ธฐ ์ํด ์ธ์ ์ ์ฌ์ฉํ๊ธฐ๋ก ํจ
์ธ์ (Session)
- ์๋ฒ์ ์ ์ฅ๋๋ ์ ๋ณด๋ก, ์ธ์ ์ ์๋ณํ๊ธฐ ์ํ ์๋ณ์ธ์ ์ธ์ ID๊ฐ ์ฟ ํค์ ๋ค์ด๊ฐ์ ์ ๋ฌ๋จ
- ๊ทธ๋ฐ๋ฐ? ์ธ์ ID๋ ์ฟ ํค์ ๋ค์ด๊ฐ
- ๊ทธ๋ผ ์ฟ ํค์ ์์ผ๋๊น ๋ฐ๊ฟ ์ ์๋๊ฐ?
- ๋ฐ๊ฟ ์์ผ ์๊ฒ ์ง๋ง ์ธ์
ID๋ 1,2,3,4 ์ ๊ฐ์ด ๋จ์ํ ์ซ์๊ฐ ์๋ ๋๋คํ ๋ฌธ์์ ํํ๋ก ๊ตฌ์ฑ
- ex) Cookie : PHPSESSIONID=02FE05158021DCA9080AFE40C5BAE15A
- (์ ์ถํ ์ ์๋ ์ํ๋ฒณ๊ณผ ์ซ์๋ก ๊ตฌ์ฑ๋ ์ผ๋ จ์ ๋ฌธ์ํํ๋ก ๊ตฌ์ฑ)
๊ทธ๋ ๋ค๋ฉด ์ธ์ ID ๋ ์ฟ ํค์ ๋ค์ด๊ฐ๋๋ฐ ์ํ์ ๋ ธ์ถ๋์ง ์๋๊ฐ? NOPE ๊ทธ๋ ์ง ์์.
์ฟ ํค์ ์ธ์ ์์ด๋๋ฅผ ๋ค๋ฅธ ์ปดํจํฐ์ ์ ์ฅํ๋ฉด ID/PW ์์ด ๋ก๊ทธ์ธ์ด ๋จ
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด์ปค๋ ์ธ์ ID๋ฅผ ์์๋ด๋ ค ํจ
์ธ์ ํ์ทจ ! (์ธ์ ID๋ฅผ ํ์น๋ ๊ฒ)
- ์ฐพ์์ ๋ฐ๊ฟ ์ ์๋๋ฐ ์ ํ์น๋ ค ํ๋ ๊ฒ์ผ๊น?
- ๋๊ตฐ๊ฐ ๋ก๊ทธ์ธํด ์๋ค๋ฉด ์ธ์ ID๋ ์ฟ ํค์ ๋ค์ด๊ฐ ์์ ๊ฒ์ด๊ณ ,
- ๊ทธ๊ฒ์ ํ์ทจํ๋ค๋ฉด ํด๋น ์์ด๋๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๊ฒ ๋๊ธฐ ๋๋ฌธ
- (๊ทธ๋ผ ๋๋ฌด ์ทจ์ฝํ๊ฒ์ด ์๋๊ฐ? ์ถ์ง๋ง ์ด๊ฒ์ HHTP์์๋ ๊ฐ๋ฅํ์ง๋ง HTTPS์์๋ SSL์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ )
๊ทธ๋ฐ๋ฐ ์ฟ ํค์ ์ธ์ ๊ฐ์ ๋ณด๊ดํด์ ๋ก๊ทธ์ธ ํ ๊ฑฐ๋ฉด, ๊ทธ๋ฅ ์ฟ ํค๋ก๋ง ๋ก๊ทธ์ธ ์ ์ง์์ผ๋ ๋์ง์์๊น?
- ์ฟ ํค๋ก๋ง ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋ง๋๋ ๊ฒ์ ๋ณด์ ์ํ์ด ํฌ๊ฒ ์กด์ฌ
- ex) ๊ณต์ PC ์ ๊ทผ, ๊ณต์ PC์ ์์ด๋์ ํจ์ค์๋๊ฐ ์ฟ ํค ํํ๋ก ์ ์ฅ๋์ด ์์ผ๋ฉด ํด๋น PC์์ ์ฟ ํค๋ฅผ ๋๊ตฌ๋ ๋ณผ ์ ์๊ณ ํด๋น ์ ๋ณด๋ฅผ ํตํด ์ธ์ ์ด๋์๋ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํด์ง๊ธฐ ๋๋ฌธ
- ๋ฐ๋ผ์ ์ธ์ ์ ์ด์ฉํ์ฌ ํด๋น ์ ๋ณด๋ฅผ ๋ณธ๋ค๊ณ ํด๋ ์ ์ถํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒ
๊ทธ๋ ๋ค๋ฉด ์ฐจ๋ผ๋ฆฌ ์ฟ ํค๋ฅผ ์์ฐ๊ณ ์๋ฒ๊ฐ ์ฌ์ฉ์๋ฅผ ๊ธฐ์ตํด์ ์ธ์ (Session)์ ๋ถ์ฌํด์ฃผ๋ ๋ฐฉ๋ฒ์ ์์๊น?
- ์๋ฒ๊ฐ ์ฌ์ฉ์๋ฅผ ๊ธฐ์ตํ๊ธฐ ์ํด ์ฌ์ฉ์์๊ฒ ์ฟ ํค๋ฅผ ๋ฐ๊ธํด์ฃผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐ๋ฅ
- ๊ทธ๊ฒ ์๋๋ผ๋ฉด ๋ง๋ ํ ์ฌ์ฉ์๋ง๋ค ์๋ณ ๊ฐ๋ฅํ ๋งค๊ฐ์ฒด๊ฐ ์๊ธฐ ๋๋ฌธ
- ์์์ ์ธ๊ธํ๋ฏ HTTP๋ ๋ฌด์ํ์ฑ์ด๋ผ๋ ํน์ง์ ๊ฐ๊ณ ์์
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๋ณด์กดํ๊ณ ์์ง ์๋ค๋ ๊ฒ
- BUT ! ์๋ฒ์์ ์ฌ์ฉ์์ ์๋ณ์๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ธ์ ID๋ฅผ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ก๊ทธ์ธ ๋ฐฉ์์ ์๋ฒฝํ ๋ฌด์ํ์ฑ์ด๋ผ๊ณ ๋ณผ ์ ์์
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋์จ ๊ธฐ์ JWT
- ๋ฌด์ํ์ฑ์ ์ถ๊ตฌํ๋ ค๋ฉด JWT ๋ฐฉ์์ ์ด์ฉํ๋๋ฐ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋ก๊ทธ์ธ ํต์ ์ ์ํธํ(๊ณต๊ฐํค-๋น๋ฐํค) ๋ฐฉ์์ ์ด์ฉํ์ฌ ์๋ฒ๋ ์ฌ์ฉ์์ ์ํ๋ฅผ ์์ ์ ์ฅํ์ง ์๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ
๋ชจ์ ํดํน ์คํฐ๋ - ๊ณผ์ 03์ฃผ์ฐจ(3) - jwt
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์