TL;DR

<aside> ๐Ÿ’ก origin ์ฆ‰ ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ๋ช…, ํฌํŠธ๋“ฑ ์ด ๋‹ค๋ฅด๋ฉด ๋ฆฌ์†Œ์Šค์˜ ์ ‘๊ทผ์„ ๊ธˆ์ง€ํ•˜๋Š” ์ •์ฑ…

</aside>

๋ฐฐ๊ฒฝ(Background)

Intro

์ด์ „ XSSํŽธ์—์„œ ๋งํ–ˆ๋“ฏ์ด ์š”์ฆ˜ ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ XSS, CSRF๋“ฑ์˜ ๋ฐฉ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด๋Š” CORS๋ฅผ ํ†ตํ•ด ๋ฐฉ์–ดํ•˜๋Š”๋ฐ, ์›๋ฆฌ๋Š” ๋Œ€๋žต ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

<aside> ๐Ÿ’ก ์„œ๋ฒ„ Response header ์˜ต์…˜ ์ค‘ Access-Control-Allow-Origin์— ํฌํ•จ๋˜์ง€ ์•Š์€ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค๋Š” ์ผ๋‹จ ์ ‘๊ทผ์„ ๊ธˆ์ง€์‹œํ‚ค๊ธฐ.

</aside>

ํ•˜์ง€๋งŒ ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋‹ค๋ณด๋ฉด ๊ฝค๋‚˜ ๋งŽ์€ ํ™•๋ฅ ๋กœ ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›์•„์•ผ ํ•  ์ผ์ด ์ƒ๊ธฐ๋Š”๋ฐ,

์ด ๋•Œ๋Š” ์„œ๋ฒ„์ธก์—์„œ Access-Control-Allow-Origin: <https://๋ฆฌ์†Œ์Šค๋ฅผ> ๋ฐ›๊ณ ์ž ํ•˜๋Š” ์™ธ๋ถ€ ์ถœ์ฒ˜

์ด๋Ÿฐ์‹์œผ๋กœ Access-Control-Allow-Origin ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

<aside> โš ๏ธ Access-Control-Allow-Origin: * ์ด๋ ‡๊ฒŒ ์™€์ผ๋“œ ์นด๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ๋˜์ง€๋งŒ, ์ด๋Š” ๋ณด์•ˆ์ƒ ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

</aside>


Front-end์—์„œ CORS ํ•ด๊ฒฐํ•˜๊ธฐ