SOP์ CORS๋?
SOP (Same-Origin Policy), ๋์ผ ์ถ์ฒ ์ ์ฑ
๋์ผ ์ถ์ฒ ์ ์ฑ ์ ์ด๋ค ์ถ์ฒ(Origin)์์ ๋ถ๋ฌ์จ ๋ฌธ์๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ค๋ฅธ ์ถ์ฒ์์ ๊ฐ์ ธ์จ ๋ฆฌ์์ค์ ์ํธ ์์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ํํ๋ ์ค์ํ ๋ณด์ ๋ฉ์ปค๋์ฆ์ด๋ค. ์ธํฐ๋ท์ ์ ์์ ์ธ ์น์ฌ์ดํธ๊ฐ ๋ธ๋ผ์ฐ์ ์์ JS๋ฅผ ์คํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ๊ณต๊ฒฉ์์๊ฒ ์ ๋ฌํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
์ถ์ฒ(Origin)์ด๋?
ํ๋กํ ์ฝ, ํฌํธ(๋ช ์๋ ๊ฒฝ์ฐ), ํธ์คํธ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๋ URL์ ๋์ผํ ์ถ์ฒ๋ฅผ ๊ฐ์ง๋ค.
๋ง์ฝ http://example.com/dir/page.html
์ด๋ผ๋ URL๊ฐ ์๋ค๋ฉด
URL | ๊ฒฐ๊ณผ | ์ด์ |
http://example.com/dir2/page.html | ๋์ผ ์ถ์ฒ | ๊ฒฝ๋ก๋ง ๋ค๋ฆ |
https://example.com/dir/page.html | ์คํจ | ๋ค๋ฅธ ํ๋กํ ์ฝ |
https://example.com:81/dir/page.html |
์คํจ | http:// ๋ ๊ธฐ๋ณธ์ ์ผ๋ก 80 ํฌํธ๊ธฐ ๋๋ฌธ์ ํฌํธ๊ฐ ๋ค๋ฆ |
http://secondexample.com/dir/page.html | ์คํจ | ๋ค๋ฅธ ํธ์คํธ |
์ ํ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค. ๊ฒฐ๋ก ์ ํ๋กํ ์ฝ, ํฌํธ, ํธ์คํธ๊ฐ ํ๋๋ผ๋ ๋ค๋ฅด๋ฉด ๋์ผ ์ถ์ฒ๊ฐ ์๋์ ๋ฐ๋ผ ์ํธ ์์ฉ์ด ์ ํ๋๋ค.
CORS (Cross-Origin Resource Sharing), ๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์
CORS (๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ )๋ HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ํ๋์ ์ถ์ฒ(Origin)์์ ์คํ ์ค์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ(Origin)์ ์ ํํ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋๋ก ๋ธ๋ผ์ฐ์ ์ ์๋ ค์ฃผ๋ ์ฒด์ ์ด๋ค. SOP(Same-Origin Policy)์ ๋ฐ๋ผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค๊ฐ ์์ ์ ์ถ์ฒ(๋๋ฉ์ธ, ํ๋กํ ์ฝ, ํฌํธ)์ ๋ค๋ฅผ ๋ ๊ต์ฐจ ์ถ์ฒ HTTP ์์ฒญ์ ์คํํ๋ค.
ex) https://domain-a.com์ ํ๋ก ํธ ์๋ JavaScript ์ฝ๋๊ฐ XMLHttpRequest๋ฅผ ์ฌ์ฉํ์ฌ https://domain-b.com/data.json์ ์์ฒญํ๋ ๊ฒฝ์ฐ. (ํธ์คํธ๊ฐ ๋ค๋ฆ)
1. HTTP๋ก ๋ค๋ฅธ ์ถ์ฒ(Origin)์ API๋ฅผ ํธ์ถํ๋ค.
2. HTTP ์์ฒญ์ ์๋ต์ ์ฃผ๋ฉด์ HTTP ํค๋์ Request Origin(์์ฒญ์ ์ฒ๋ฆฌํด ์ค ์ ์๋ ์ถ์ฒ)๋ฅผ ๋ช ์ํ๋ค.
ex)
Access-Control-Allow-Origin: secondexample.com
Access-Control-Allow-Origin: *
secondexample.com์ ์ํด์ ๋ก๋ฉ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํด์๋ง ์์ฒญํด์ค๋ค.
*๋ Request Origin์ ๊ด๊ณ์์ด ์ฌ์ดํธ์์ ๋ก๋ฉ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ฒญ์ ๋ํด์ ์ฒ๋ฆฌํด์ค๋ค.
์ฐธ๊ณ ํ ๋ฌธ์
https://developer.mozilla.org/ko/docs/Web/Security/Same-origin_policy
'๐ฉโ๐ป CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋คํธ์ํฌ] URI, URL, URN์ ์ฐจ์ด (0) | 2024.01.25 |
---|---|
REST, RESTful API, REST ์ ์ฝ ์กฐ๊ฑด (0) | 2024.01.24 |
[๋คํธ์ํฌ-์ธ์ฆ] ์ฟ ํค, ์ธ์ , JWT ํ ํฐ (0) | 2024.01.23 |
[๋คํธ์ํฌ] LAN๊ณผ WAN (0) | 2024.01.11 |
[๋คํธ์ํฌ] ๋คํธ์ํฌ ๊ตฌ์ฑ ๊ธฐ๊ธฐ - ๋ฌผ๋ฆฌ ๊ณ์ธต, ๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต, ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต (0) | 2024.01.11 |