동일 출처 정책(Same-Origin Policy)의 원리와 보안 역할

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 웹 개발자, 보안 엔지니어, 프론트엔드/백엔드 개발자
  • 중급 이상의 이해 수준 (HTTP, 쿠키, CORS 등 기본 개념 이해 필요)

핵심 요약

  • 동일 출처 정책(SOP)은 웹 브라우저가 다른 도메인의 스크립트에 접근을 제한하여 보안을 강화하는 핵심 기능
  • 쿠키는 SOP 예외로, 호스트만 검사하여 서브도메인 간 공유 가능
  • CORS(Cross-Origin Resource Sharing)와 협업하여 크로스 도메인 요청에 대한 제한을 유연하게 관리

섹션별 세부 요약

1. 동일 출처 정책(SOP)의 정의 및 구성 요소

  • SOP프로토콜, 호스트, 포트 3가지 요소로 출처를 정의
  • 예: https://some-website.com:8081
  • 포트 생략 시 브라우저는 https의 기본 포트 443을 자동으로 사용
  • 출처 비교 시 디렉터리 경로는 무시되나, 서브도메인은 다르게 처리

2. SOP의 접근 허용 규칙

  • 동일 출처(https://some-website.com:8081) → 접근 허용
  • 서브도메인(예: sub.some-website.com) → 다른 출처로 간주, 접근 제한
  • 포트 차이(예: http://some-website.com:80) → http의 기본 포트 80 사용 시 접근 제한

3. 쿠키와 SOP의 예외 처리

  • 쿠키는 SOP에 적용되지 않으며, 호스트만 검사하여 모든 서브도메인에서 공유 가능
  • 예: example.com의 쿠키는 sub.example.com에서도 사용 가능

4. SOP의 보안 역할 및 위협 방지

  • CSRF(Cross-Site Request Forgery) 공격 방지:
  • 악의적인 사이트가 사용자의 로그인 세션을 악용해 요청을 보내는 것을 차단
  • CORS가 요청 허용 여부를 명시적으로 결정
  • SOP는 웹의 기본 보안 틀을 제공하며, 세션 데이터 유출을 방지

결론

  • SOP와 CORS의 이해는 보안 취약점 방지 및 사용자 데이터 보호에 필수적
  • 쿠키와 세션 관리 시 서브도메인 간 공유 가능성에 주의해야 하며, CORS 설정을 명확히 정의해야 함
  • 보안 테스트 시 SOP 위반 시나리오(예: CSRF)를 반드시 검증해야 함