ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP 보안]CSP vs SOP
    프론트엔드/HTTP 2024. 12. 29. 12:41
    728x90

    [HTTP 보안]CSP vs SOP

     

    **CSP(Content Security Policy)**와 **SOP(Same-Origin Policy)**는 웹 보안을 강화하기 위한 두 가지 중요한 개념으로, 각각 다른 방식으로 애플리케이션을 보호합니다. 아래에서 이 둘을 비교하며 설명하겠습니다.


    1. 정의

    • CSP (Content Security Policy)
      • 웹 애플리케이션에서 실행 가능한 리소스의 출처를 명시적으로 제한하여, 악성 스크립트 실행(XSS), 데이터 유출 등의 보안 위협을 방지하는 보안 메커니즘.
      • 개발자가 HTTP 응답 헤더 또는 <meta> 태그를 사용해 정책을 설정.
    • SOP (Same-Origin Policy)
      • 웹 브라우저가 한 출처(origin)의 리소스가 다른 출처의 리소스에 접근하는 것을 제한하여, 크로스사이트 요청 위조(CSRF)나 데이터 탈취 같은 공격을 방지하는 보안 모델.
      • 브라우저의 기본 보안 정책으로 별도의 설정 없이 작동.

    2. 목적

    • CSP
      • 리소스 로드와 실행을 통제하여 악성 코드 삽입을 방지.
      • 예: 악성 스크립트, 이미지, 스타일시트 로드 방지
    • SOP
      • 서로 다른 출처 간의 상호작용을 제한하여, 민감한 데이터와 세션 정보가 노출되지 않도록 보호.
      • 예: https://example.com의 스크립트가 https://another.com의 데이터를 읽지 못하도록 제한.

    3. 작동 방식

    • CSP
      • 정책 설정: 개발자가 HTTP 헤더(Content-Security-Policy)나 <meta> 태그를 통해 정책을 정의.
        • 예:
          Content-Security-Policy: script-src 'self' https://trusted.com
      • 브라우저는 CSP를 읽고, 정책에 맞지 않는 리소스 로드나 실행을 차단.
    • SOP

    4. 주요 사용 사례

    • CSP
      • XSS(크로스사이트 스크립팅) 방지.
      • 신뢰할 수 없는 리소스 로드를 차단.
      • 특정 도메인에서만 스크립트, 스타일, 이미지 로드 허용.
    • SOP
      • API 호출 시 민감한 데이터 보호.
      • 악성 웹사이트가 사용자의 쿠키나 세션 데이터를 탈취하는 것을 방지.
      • 특정 조건에서 크로스오리진 요청 제한.

    5. 제한 사항 및 한계

    • CSP
      • 복잡한 설정으로 인해 오작동 가능성(특히 정책에 의한 정당한 리소스 차단).
      • 기존 웹사이트에 적용할 경우 개발 비용 상승.
      • 브라우저가 CSP를 지원해야 동작.
    • SOP
      • 완전히 차단하지 않고 허용해야 하는 경우가 많아(CORS 등) 우회가 가능.
      • 일부 리소스(CSS, 이미지 등)는 SOP에 의해 제한되지 않음.
      • 서버 간 데이터 공유를 위해 추가적인 설정(CORS)이 필요.

    6. 주요 차이점 요약

    특성 CSP SOP
    목적 리소스 실행과 로드를 통제. 다른 출처 간의 데이터 접근 제한.
    작동 방식 정책을 설정하여 브라우저가 리소스 로드/실행을 제한. 동일 출처(origin)인지 확인 후 요청 제한.
    적용 범위 특정 리소스(스크립트, 스타일, 이미지 등). 데이터 요청과 DOM 접근.
    기본 동작 여부 개발자가 명시적으로 설정해야 동작. 브라우저에서 기본적으로 작동.
    주요 방어 대상 XSS, 악성 스크립트 삽입. CSRF, 크로스사이트 데이터 접근.

    결론

    • CSP는 XSS와 악성 리소스 로드를 방지하는 데 효과적이며, 웹 애플리케이션 보안을 강화하기 위해 개발자가 명시적으로 설정하는 메커니즘입니다.
    • SOP는 브라우저의 기본 보안 정책으로, 출처 간 데이터 접근을 제한하여 민감한 데이터 보호를 보장합니다.
      이 둘은 서로 보완적인 역할을 하며, 동시에 적용할 때 더욱 강력한 보안을 제공합니다.
    728x90

    '프론트엔드 > HTTP' 카테고리의 다른 글

    웹페이지 성능 최적화  (0) 2024.12.31
    [HTTP 보안]CORS  (0) 2024.12.29
    [HTTP 보안]escape  (0) 2024.12.29
    [HTTP 보안]sanitize  (0) 2024.12.29
    [HTTP 기본]curl  (1) 2024.12.28
Designed by Tistory.