๐ ์ค๋๋ถํฐ 3์ผ๊ฐ ๋ก๊ทธ์ธ๊ด๋ จ ๋ด์ฉ์ ํ์ต์ ํ๊ฒ๋๋ค. ์ฟ ํค... ํ ํฐ... ์์ ๋ก๊ทธ์ธ ๊ด๋ จ์ด๋ค... ์ด๋ถ๋ถ์ ํ๋ก์ ํธ์ ์ฌ์ฉํ ์ ์๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ด์ฌํํด๋ณด์!!!
๐ ์ค๋ ํ์ตํ ๋ด์ฉ
HTTPS ํ๋กํ ์ฝ
- HTTP + Secure
- ์์ฒญ์ ๋ด์ฉ์ ํ๋ฒ ์ํธํํ๊ธฐ ๋๋ฌธ์ ์ ์ถ์ด ๋์ด๋ ์ด๋ค ๋ด์ฉ์ธ์ง ์ ์ ์๋ค.
- ์ธ์ฆ์, CA, ๋น๋์นญ ํค ์ํธํ๋ฐฉ์์ ์ด์ฉํ๋ค.
- ์ธ์ฆ์
- ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ์๋ฒ๊ฐ ์ง์ง์ธ์ง ์ธ์ฆํ์ธํ๋ ์ฉ๋์ด๋ค.
- ์ธ์ฆ์์ ๋ด์ฉ์ ์๋ฒ์ ๋๋ฉ์ธ ๊ด๋ จ ์ ๋ณด๊ฐ ์์ด์ ๋ฐ์ดํฐ ์ ๊ณต์์ ์ธ์ฆ์ ์ฉ์ดํ๊ฒ ํ๋ค.
- ์์ฒญ์ ๋ฐ์ ์๋ฒ๋ ์ธ์ฆ์์ ํจ๊ป ์๋ต์ ์ ์กํ๊ณ , ์๋ต์ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์์ ์์ฑ๋ ๋๋ฉ์ธ๊ณผ ์๋ต ๊ฐ์ฒด์ ์์ฑ๋ ๋๋ฉ์ธ์ ๋น๊ตํ์ฌ ๊ฐ๋ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํด์ฃผ๋ ์๋ฒ๊ฐ ์ง์ง๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
- CA (Certificate Authority)
- ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ ๊ณต์ธ๋ ๊ธฐ๊ด์ด๋ค.
- ๊ฐ ๋ธ๋ผ์ฐ์ ๋ ์ ๋ขฐํ๋ CA์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ด ์ธ์ฆ์์ ์ฐจ์ด๊ฐ ์๋ค.
- ๋น๋์นญ ํค ์ํธํ
- ์ํธํ ๋ฐ ๋ณตํธํ ๊ฐ๋ฅ
- Aํค๋ก ํน์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ฉด ํด๋น ํค๋ฅผ ๋ณตํธํํ๋๋ฐ Aํค์ ์์ธ Bํค๋ก๋ง ๊ฐ๋ฅํ๋ค.
์ํธํ
- ์ 3์๊ฐ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ์ ๋ณด๋ฅผ ํ์ทจํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
- ์๋ฒ์ ํด๋ผ์ด์ธํธ๋์๋ก๊ฐ ํฉ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ์ํธํํ์ฌ ์ฃผ๊ณ ๋ฐ๋๋ค.
- ์ค๊ฐ์ ์ 3์์๊ฒ ๋ฐ์ดํฐ๊ฐ ํ์ทจ๋๋๋ผ๋ ๊ทธ ๋ด์ฉ์ ์์๋ณผ ์ ์๋ค.
- ์ผ๋ จ์ ์ ๋ณด๋ฅผ ์์์ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ํํ๋ก ๋ณํํ์ฌ ํด๋น ๋ฐฉ์์ ๋ํ ์ ๋ณด๋ฅผ ์์ ํ ์ฌ๋์ ์ ์ธํ๊ณ ์ดํดํ ์ ์๋๋ก '์๊ณ ๋ฆฌ์ฆ'์ ์ด์ฉํด ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ๊ณผ์ ์ด๋ค.
mkcert
- ๋ก์ปฌ ํ๊ฒฝ์์ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์๋ฅผ ๋ง๋ ๋ค.
- ๋ก์ปฌ์ ์ธ์ฆ๋ ๊ธฐ๊ด์ผ๋ก ์ถ๊ฐํ ๋ค ๋ก์ปฌ ํ๊ฒฝ ์ธ์ฆ์๋ฅผ ์์ฑํ๋ค.
// ์ค์น
brew install mk cert
// ๋ก์ปฌ์ ์ธ์ฆ๋ ๋ฐ๊ธ๊ธฐ๊ด์ผ๋ก ์ถ๊ฐ
mkcert -install
// ๋ก์ปฌ ํ๊ฒฝ ์ธ์ฆ์ ์์ฑ
mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1
Hashing
- ์ด๋ค ๋ฌธ์์ด์ '์์์ ์ฐ์ฐ'์ ์ ์ฉํ์ฌ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ณํํ๋ ๊ฒ
- ๋ชจ๋ ๊ฐ์ ๋ํด ํด์ ๊ฐ์ ๊ณ์ฐํ๋๋ฐ ์ค๋๊ฑธ๋ฆฌ์ง ์์์ผ ํ๋ค.
- ์ต๋ํ ํด์ ๊ฐ์ ํผํด์ผ ํ๋ฉฐ, ๋ชจ๋ ๊ฐ์ ๊ณ ์ ํ ํด์ ๊ฐ์ ๊ฐ์ง๋ค.
- ์์ฃผ ์์ ๋จ์์ ๋ณ๊ฒฝ์ด๋ผ๋ ์์ ํ ๋ค๋ฅธ ํด์ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค.
Salt
- ์ํธํํด์ผ ํ๋ ๊ฐ์ ์ด๋ค '๋ณ๋์ ๊ฐ'์ ์ถ๊ฐํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณํํ๋ ๊ฒ
- ์ํธํ๋ง ํด๋๋๋ค๋ฉด ํด์๋ ๊ฒฐ๊ณผ๊ฐ ๋ ๋์ผํ๋ค.
ํด์๋ ๊ฐ๊ณผ ์๋ ๊ฐ์ ํ ์ด๋ธ(๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ)๋ก ๋ง๋ค์ด์ decoding ํด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๋ ์๊ธด๋ค. - ์๋ณธ๊ฐ์ ์์๋ก ์ฝ์๋ ๋ณ๋์ ๋ฌธ์์ด์ ์ถ๊ฐํ์ฌ ํด์๋ฅผ ์งํํ๋ค๋ฉด ๊ธฐ์กด ํด์๊ฐ๊ณผ ์ ํ ๋ค๋ฅธ ํด์๊ฐ์ด ๋ฐํ๋์ด ์๊ณ ๋ฆฌ์ฆ์ด ๋ ธ์ถ๋๋๋ผ๋ ์๋ณธ๊ฐ์ ๋ณดํธํ ์ ์๋๋ก ํ๋ ์์ ์ฅ์น์ด๋ค.
- ๊ธฐ์กด: ์ํธํ ํ๋ ค๋ ๊ฐ -> hash ๊ฐ
Salt: ์ํธํ ํ๋ ค๋ ๊ฐ + Salt ์ฉ ๊ฐ => hash ๊ฐ
- ์ํธํ๋ง ํด๋๋๋ค๋ฉด ํด์๋ ๊ฒฐ๊ณผ๊ฐ ๋ ๋์ผํ๋ค.
Cookie
- ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์์์ฑ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๋จ์ํ ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์ฟ ํค๋ฅผ ์ ์กํ๋ ๊ฒ๋ง ์๋ฏธํ์ง ์๊ณ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ฟ ํค๋ฅผ ๋ค์ ์ ์กํ๋ ๊ฒ๋ ํฌํจ๋๋ค.
- ํน์ง
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ํน์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ดํ ์๋ฌด ๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ๋ ์๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ ํน์ ์กฐ๊ฑด๋ค์ด ๋ง์กฑ๋ผ์ผ ๋ค์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
1. Domain
- www.google.com๊ณผ ๊ฐ์ ์๋ฒ์ ์ ์ํ ์ ์๋ ์ด๋ฆ
2. Path
- ์ธ๋ถ ๊ฒฝ๋ก๋ก์จ ์๋ฒ๊ฐ ๋ผ์ฐํ ํ ๋ ์ฌ์ฉํ๋ ๊ฒฝ๋ก๋ฅผ ์๋ฏธํ๋ค.
- ์ค์ ๋ ๊ฒฝ๋ก๋ฅผ ํฌํจํ๋ ํ์ ๊ฒฝ๋ก๋ก ์์ฒญ์ ํด๋ ์ฟ ํค๋ฅผ ์๋ฒ์ ์ ์กํ ์ ์๋ค.
3. MaxAge or Expires
- ์ฟ ํค๊ฐ ์ ํจํ ๊ธฐ๊ฐ์ ์ ํ๋ ์ต์
- MaxAge: ์๊ฐ์ ์ด ๋จ์๋ก ์ค์
- Expires: ๋ ์ง ์ค์
- ์ธ์ ์ฟ ํค: MaxAge, Expires ์ต์ ์ด ์๋ ์ฟ ํค(์์ ์ฟ ํค)
- ์์์ฑ ์ฟ ํค: MaxAge, Expires์ ์ง์ ๋ ์ ํจ์๊ฐ๋งํผ ์ฌ์ฉ๊ฐ๋ฅํ ์ฟ ํค
4. Secure
- ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ ๋ฐ๋ฅธ ์ฟ ํค์ ์ ์ก ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์ต์ ์ด๋ค.
- Secure ์ต์ ์ด true๋ก ์ค์ ๋ ๊ฒฝ์ฐ HTTPS๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์กํ ์ ์๋ค.
5. HttpOnly
- JS์์ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ์ ๊ทผ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
- ์ต์ ์ด true์ธ ๊ฒฝ์ฐ js๋ก ์ฟ ํค์ ์ ๊ทผ์ด ๋ถ๊ฐํ๋ค.
6. SameSite
- Cross-Orgin ์์ฒญ์ ๋ฐ์ ๊ฒฝ์ฐ ์์ฒญ์์ ์ฌ์ฉํ ๋ฉ์๋์ ํด๋น ์ต์ ์ ์กฐํฉ์ ๊ธฐ์ค์ผ๋ก ์๋ฒ์ ์ฟ ํค ์ ์ก ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ฒ ๋๋ค.
์ฟ ํค๋ฅผ ์ด์ฉํ ์ํ ์ ์ง
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ฟ ํค๋ ์ค๋ ์๊ฐ ์ ์งํ ์ ์๊ณ , HttpOnly ์ต์ ์ ์ฌ์ฉํ์ง ์์๋ค๋ฉด JS๋ฅผ ์ด์ฉํด์ ์ฟ ํค์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฟ ํค์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ด๋ ๊ฒ์ ์ํํ๋ค.
Session
- ์๋ฒ๊ฐ Client์ ์ ์ผํ๊ณ ์ํธํ๋ ID๋ฅผ ๋ถ์ฌ
- ์ค์ ๋ฐ์ดํฐ๋ ์๋ฒ์์ ๊ด๋ฆฌ
๐ ์ถ๊ฐ๋ก ๊ณต๋ถํ ๋ด์ฉ
[udemy] React ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ณด๊ธฐ (๋งค์ผ ์กฐ๊ธ์ฉ ์ด๋ผ๋ ๊พธ์คํ ๋ฃ๊ธฐ)
axios ์ฌ์ฉ๋ฐฉ๋ฒ
๐ ์ค์ํ ๋ด์ฉ
- ์ฟ ํค: ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
- ์ธ์ : ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์ฑ๊ณตํ ์ํ
- axios๋ก ์๋ฒ์ ํต์ ๊ฐ๋ฅ (fetch์ ๊ฐ์ ๊ธฐ๋ฅ, ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉ)
axios | fetch |
์จ๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์ค์น ํด์ผ ์ฌ์ฉ ๊ฐ๋ฅ) | ๋นํธ์ธ(์ค์นํ์ง ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ) |
XSRF ๋ณด์ ๊ธฐ๋ฅ ์ ๊ณต | ๋ณด์ ๊ธฐ๋ฅ ์์ |
์๋ JSON ๋ฐ์ดํฐ ๋ณํ | JSON ๋ฐ์ดํฐ ํธ๋ค๋ง ์ํ ์ถ๊ฐ ๋ก์ง ๊ตฌํ |
๋ฐ์ดํฐ๊ฐ ๊ฐ์ฒด๊ฐ ํฌํจ๋จ | ๋ฐ์ดํฐ๊ฐ ๋ฌธ์์ดํ ๋์ด์ผํจ |
์ถ๊ฐ ๋น๊ต ํ: https://www.geeksforgeeks.org/difference-between-fetch-and-axios-js-for-making-http-requests/
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22.07.18_TIL (0) | 2022.07.18 |
---|---|
22.07.15_TIL (0) | 2022.07.15 |
22.07.12_TIL (0) | 2022.07.12 |
22.07.11_TIL (2) | 2022.07.11 |
22.07.08_TIL (0) | 2022.07.08 |