CORS ๐
๋ชฉ์ฐจ
- CORS๊ฐ ๋ญ๊ฐ์?
ย ย - Cross Origin Resource Sharing์ ์ฝ์๋ก, ๊ต์ฐจ ์ถ์ฒ ๊ณต์ ๋ฅผ ์๋ฏธํจ
ย ย - ์๋ต์ ๋ณด๋ด๋ ์ถ์ฒ๊ฐ ์์ ์ด ์ํ ์ถ์ฒ๊ฐ ์๋, ๋ค๋ฅธ ์ถ์ฒ์ฌ๋ ์๋ก ์์๋๋ ์ถ์ฒ๋ผ๋ฉด ์์ฒญ์ ๋ํด ํ์ฉํด์ฃผ๋ ์๋ต ํค๋๋ฅผ ๋ณด๋ด, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค- CORS๋ฅผ ๊ฒช๊ณ ์ง์ ํด๊ฒฐํด ๋ณธ ๊ฒฝํ์ด ์์ผ๋ฉด ๋งํด์ฃผ์ธ์
ย ย 1. ์๋ฒ ๊ฐ๋ฐ์์ ๋น ๋ฅด๊ฒ ์ํตํจ
ย ย 2. ๊ฐ๋ฐ ํ๊ฒฝ ํ๋ก์ ์ค์
ย ย 3. ํ๋ก์ ์๋ฒ ๊ตฌ์ถ
1. CORS
CORS๊ฐ ๋ญ๊ฐ์?
- Cross Origin Resource Sharing์ ์ฝ์๋ก,
๊ต์ฐจ ์ถ์ฒ ๊ณต์
- Origin์ โ scheme(ํ๋กํ ์ฝ), โก host(๋๋ฉ์ธ), โข port ๋ก ์ด๋ฃจ์ด์ง URL์ ์๋ฏธ
- ์์ ์ด ์ํ ์ถ์ฒ(Origin)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ์ถ์ฒ(Origin)์ API๋ฅผ ์์ฒญํ๊ฒ ๋๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ด ์์ฒญ์ผ๋ก ๋์ด์ค๋ ๊ฒฝ๊ณผ๊ฐ ์์ ํ์ง ํ๋จํ๊ฒ ๋๋๋ฐ, ์๋ต์ ๋ณด๋ด๋ ์ถ์ฒ๊ฐ ์์ ์ด ์ํ ์ถ์ฒ๊ฐ ์๋, ๋ค๋ฅธ ์ถ์ฒ์ฌ๋ ์๋ก ์์๋๋ ์ถ์ฒ๋ผ๋ฉด ์์ฒญ์ ๋ํด ํ์ฉํด์ฃผ๋ ์๋ต ํค๋๋ฅผ ๋ณด๋ด, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค
๋ชจ๋ ์๋ฒ๋ค์ด ๋ค CORS๋ฅผ ์ธ์งํ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ ๊ฑฐ๋ถํ๋๋ผ๋ ์๋ฒ์์ ์ฒ๋ฆฌํด๋ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๊ฐ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ์์ ํ๊ฒ ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก
๋ธ๋ผ์ฐ์ ์์ ํด๋น ์์ฒญ(CORS)์ ์ฒ๋ฆฌํจ
์ค์ ์์ฒญ์ : ๊ฐ์ Origin์์ http ํต์ ์ ํ๋ ๊ฒฝ์ฐ ์์์ cookie๊ฐ request header์ ๋ค์ด๊ฐ์ง๋ง, ๊ต์ฐจ ์ถ์ฒ๋ก ์์ฒญํ๋ ์ํฉ์์๋ ๊ทธ๋ ์ง ์์
- Origin์ด ๋ค๋ฅธ http ํต์ ์์๋ request header์ ์ฟ ํค๊ฐ ์๋์ผ๋ก ๋ค์ด๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์๊ฒ ๋๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ด๊ฐ ์ด๋ค ์์ฒญ์ ๋ณด๋ด๋ ์ง ์๋ ค์ค ํ์๊ฐ ์์
1 2
ํ๋ก ํธ > WithCredentials: true ์๋ฒ > Access-Control-Allow-Credentials: true
- Cross Origin Resource Sharing์ ์ฝ์๋ก,
CORS๋ฅผ ๊ฒช๊ณ ์ง์ ํด๊ฒฐํด ๋ณธ ๊ฒฝํ์ด ์์ผ๋ฉด ๋งํด์ฃผ์ธ์
์๋ฒ ๊ฐ๋ฐ์์ ๋น ๋ฅด๊ฒ ์ํตํจ
- ์ถ์ฒ๊ฐ ์ ์ด๋ถํฐ ํ์ฉ๋์ง ์๋๋ก ์ค์ ์ด ๋๋ค๋ฉด, ์ต์ ๊ณผ ์๋ต ํค๋๋ฅผ ๊น๋นกํ๊ณ ์๋ฒ ๊ฐ๋ฐ์๊ฐ ์ธํ ํด์ฃผ์ง ์์๋ค๋ฉด, ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์ ์์ ์ด๋ผ๊ณ ํ๋จํ์ง ์์
- ๋ฐ๋ผ์ ๋ชจ๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์์, ์ผ๋จ ๋จผ์ ์ฐ๋ฆฌ๋ ์๋ฒ ๊ฐ๋ฐ์์ ๋น ๋ฅด๊ฒ ์ํตํด๋ด ์๋ค.
๊ฐ๋ฐ ํ๊ฒฝ ํ๋ก์ ์ค์
- ๊ฐ๋ฐ ํ๊ฒฝ์ ์์ด์ ์ธํ ์ ์ ํด๋์ ์ํ์ด๊ณ , ์๋ฒ์ ์ธํ ์ ์๋ฒฝํ๋ฐ ๊ทธ๋ผ์๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค๋ฉด, ๊ฐ๋ฐ ํ๊ฒฝ์์์ ํ๋ก์ ์ค์ ๋ ๋์์ด ๋ ์ ์์
- ์ด๋ CRA, Vue-cli, Webpack-dev-server ๋ฑ์ ํตํด ์ธํ ์ ์ง์ ํด์ค ์ ์์ง๋ง ๊ฐ์ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ณต์๋ฌธ์ ์ฐธ๊ณ
ํ๋ก์ ์๋ฒ ๊ตฌ์ถ
- CORS๋ ๋ธ๋ผ์ฐ์ ์์ ํ๋จํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ์๋ฒ ๊ตฌ์ถ์ ํตํด ์์ (๋ชจ๋ ๋ฐฉ๋ฒ์ด ๋จนํ์ง ์์ ๋)
- ๋จ ์ง์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ค ์์์ผ ํ๊ณ ์ด๋๋ฌธ์ ์๊ฐ์ , ์ธ์ ์์์ด ์์๋จ
์ถ์ฒ