CORS(Cross-Origin Resource Sharing)

๊น€์ค€ํƒœยท2023๋…„ 4์›” 12์ผ
0

๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
5/10
post-thumbnail

๐Ÿ“• CORS

  • ๋‹ค๋ฅธ ์ถœ์ฒ˜๊ฐ„(์›น์‚ฌ์ดํŠธ, API์ฃผ์†Œ)์˜ ๋ฆฌ์†Œ์Šค(์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ)๋ฅผ ์ถ”๊ฐ€ HTTP ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋„๋ก ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋ ค์ฃผ๋Š” ์ฒด์ œ

์ž‘๋™๋ฐฉ์‹

  1. ์š”์ฒญ์— Origin์ด๋ผ๋Š” header(๋ฐ›๋Š” ์ชฝ์˜ IP์ฃผ์†Œ, ์‚ฌ์šฉํ•  ํ”„๋กœํ† ์ฝœ...)๋ฅผ ์ถ”๊ฐ€ (scheme(์š”์ฒญํ• ์ž์›์˜ ์ ‘๊ทผ๋ฐฉ๋ฒ• http,ftp...), ๋„๋ฉ”์ธ, ํฌํŠธ) ํ•ด์„œ API๋กœ ๋ณด๋‚ธ๋‹ค.
  2. API์„œ๋ฒ„๋Š” ๋‹ต์žฅ header์— ์ง€์ •๋œ ACAO ์ •๋ณด๋ฅผ ์‹ค์–ด์„œ ๋ณด๋‚ธ๋‹ค.
  3. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ origin์—์„œ ๋ณด๋‚ธ ์ถœ์ฒ˜๊ฐ’์ด ์„œ๋ฒ„์˜ ๋‹ต์žฅ ํ—ค๋”์— ๋‹ด๊ธด ACAO์— ๋˜‘๊ฐ™์ด ์žˆ์œผ๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•ด์ค€๋‹ค.

์ถœ์ฒ˜(origin)์ด๋ž€ ?

๐Ÿ“— CORS์˜ ์ข…๋ฅ˜

Simple Request

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณธ ์š”์ฒญ์„ ๋ฐ”๋กœ ๋ณด๋‚ด๋ฉฐ ์„œ๋ฒ„์—์„œ๋Š” ์ถ”๊ฐ€์ ์ธ ์ฒ˜๋ฆฌ ์—†์ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Preflight Request

  • ๋ณธ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์ „์— ์„œ๋ฒ„๊ฐ€ ๋ณธ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •, ์š”์ฒญ์— ์˜ํ•ด์„œ ์„œ๋ฒ„ ์ •๋ณด๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—.
  • HTTP ๋ฉ”์„œ๋“œ ์ค‘ OPTIONS ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ, ํ—ค๋”, ์ถœ์ฒ˜ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.

SOP(Same Origin Policy)

  • SOP๋Š” ๊ฐ™์€ ์ถœ์ฒ˜์— ์†ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ผ๋ฆฌ๋Š” ์ž์œ ๋กญ๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๊ณ , ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค์—๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ์ œํ•œ
  • XSS(Cross-Site Scripting) ๊ณต๊ฒฉ๊ณผ CSRF(Cross-Site Request Forgery) ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• 

ACAO(Access-Control-Allow-Origin)

  • CORS(Cross-Origin Resource Sharing)์—์„œ ์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ ํ—ˆ์šฉ๋˜๋Š” ์ถœ์ฒ˜(origin)๋ฅผ ์„ค์ •ํ•˜๋Š” HTTP ํ—ค๋”
  • ์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ด๋Š” ์‘๋‹ต์— ํฌํ•จ๋˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฅผ ํ†ตํ•ด ์ž์‹ ์ด ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ—ˆ์šฉ๋œ ์ถœ์ฒ˜์—์„œ ์˜จ ๊ฒƒ์ธ์ง€ ํ™•์ธ

๐Ÿ“Ž ์ฐธ๊ณ ์˜์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€