CS 준비

[네트워크]SOP란?

해로몬 2025. 2. 10. 12:18

SOP(Same-Origin Policy, 동일 출처 정책)란?

웹 보안을 위해 다른출처(origin) 간의 리소스 접근을 제한하는 보안정책

XSS, CSRF 등의 공격을 방지하기 위한 기본적인 브라우저 보안기능

✅ 출처(Origin)란?

출처(Origin)는 프로토콜 + 도메인 + 포트 번호 조합을 의미함

출처(origin) = <protocol> + <host> + <port>

예시)

URL  출처(Origin)
https://example.com:443 https://example.com:443
http://example.com:80 http://example.com:80
https://sub.example.com https://sub.example.com

출처가 같은 경우

🚨 출처가 다른 경우


✅ SOP의 제한 사항

SOP 정책에 의해 다른 출처의 리소스에 접근할 수 없음

  • example.com에서 another-domain.com의 데이터를 요청하면 SOP 정책에 의해 차단됨
  • 브라우저는 보안상의 이유로 Cross-Origin 요청을 기본적으로 막음

✅ SOP의 예외 (다른 출처에 접근하는 방법)

1.CORS (Cross-Origin Resource Sharing)

  • 서버에서 Access-Control-Allow-Origin 헤더를 설정하여 특정 출처에서 접근 허용 가능
  • https://another-domain.com 서버가 다음과 같은 헤더를 포함하면 요청 가능
Access-Control-Allow-Origin: <https://example.com>

 

예제(CORS 사용)

fetch('https://another-domain.com/api/data', {
  method: 'GET',
  headers: {
    'Origin': 'https://example.com'
  }
});

 

2.SONP (과거 방식, 현재는 거의 사용하지 않음)

  • <script> 태그를 이용해 JSON 데이터를 받아오는 방식
  • SOP 정책을 우회하기 위해 사용되었으나, 보안 문제로 현재는 거의 사용되지 않음

 

3.서버 프록시 사용

백엔드 서버에서 다른 출처의 데이터를 가져와 프론트엔드에 전달하는 방식

예제:

 

Client (example.com) → Server (example.com) → API (another-domain.com)

보안상 안전한 방식이며, 자주 사용됨

 

SOP를 사용하는 이유

XSS (Cross-Site Scripting) 및 CSRF (Cross-Site Request Forgery) 공격을 방어하는 역할을 한다.

📌 XSS(크로스 사이트 스크립팅) 공격 방어

  • XSS 공격은 악성 스크립트를 웹사이트에 삽입하여 사용자의 브라우저에서 실행되도록 유도하는 공격
  • SOP가 없다면?
    • 공격자가 다른 출처의 웹사이트에서 악성 스크립트를 실행하여 사용자의 민감한 데이터를 훔칠 수 있음
    • 예: example.com 사용자의 쿠키를 attacker.com에서 가져가는 공격 가능

SOP가 있으면?

  • 다른 출처(origin)에서 실행된 스크립트는 현재 웹사이트의 데이터를 읽을 수 없음
  • 즉, attacker.com에서 실행된 JavaScript가 example.com의 document.cookie에 접근할 수 없도록 차단

📌 CSRF(크로스 사이트 요청 위조) 공격 방어

  • CSRF 공격은 사용자가 모르는 사이에 특정 사이트에서 요청을 보내도록 속이는 공격
  • SOP가 없다면?
    • 공격자가 evil.com에서 bank.com으로 사용자의 세션을 이용한 요청을 보낼 수 있음
    • 사용자가 로그인된 상태에서 악성 사이트에 방문하면, 자동으로 사용자의 인증 정보가 포함된 요청이 전송될 가능성이 있음

SOP가 있으면?

  • evil.com에서 bank.com의 API 요청을 직접 수행할 수 없도록 차단
  • 즉, 서버에서 CORS 설정 없이 Cross-Origin 요청이 차단됨
  • 다만 CSRF 공격은 사용자의 인증 정보를 활용하는 방식이므로, SOP만으로 완벽한 방어가 어렵고 CSRF 토큰 등의 추가적인 보안 조치 필요

📌 CSP(Content Security Policy)와 SOP의 역할 차이

CSP와 SOP는 모두 웹 보안을 강화하지만, 목적과 역할이 다름

정책  역할 방어  대상
SOP (Same-Origin Policy) 다른 출처(origin) 간 리소스 접근 차단 XSS, CSRF
CSP (Content Security Policy) 악성 스크립트 실행 차단 XSS (스크립트 삽입)

SOP는 출처(origin) 기반의 보안 정책

CSP는 웹사이트에서 실행 가능한 리소스를 제한하여 XSS 공격을 방어하는 보안 정책

 

 

 

 

📌꼬리개념 알고가기!

CORS란?

'CS 준비' 카테고리의 다른 글

[네트워크]CORS란?  (0) 2025.02.10
[네트워크]XSS  (0) 2025.02.10
서브넷 마스크 & 게이트웨이  (0) 2025.02.10
[네트워크]로드밸런서가 무엇인가요?  (0) 2025.02.10
[네트워크]DNS란?  (0) 2025.02.10