Content Security Policy (CSP) 생성기

Content Security Policy (CSP)는 웹 애플리케이션이 실행되는 동안 특정 유형의 리소스 로드 및 실행을 제어하는 보안 기능입니다. 이를 통해 잠재적인 XSS(크로스 사이트 스크립팅) 및 데이터 도용 등의 공격을 예방할 수 있습니다. 아래 각 옵션을 설정하여 자신만의 CSP 헤더를 생성하세요.

기본 리소스 로드 정책을 정의합니다. 대부분의 리소스는 이 규칙을 따르며, 스크립트, 스타일, 이미지 등은 특정 옵션에서 별도로 설정하지 않으면 이 정책을 따릅니다.

  • 'self': 현재 사이트의 도메인에서 로드된 리소스만 허용
  • 'none': 어떠한 리소스도 허용하지 않음
  • 도메인: 특정 도메인에서만 리소스를 허용 (예: https://example.com)

스크립트 리소스의 출처를 제어합니다. 자바스크립트 코드를 포함하거나 로드할 수 있는 소스를 설정합니다.

  • 'self': 현재 도메인에서만 스크립트를 허용
  • 'unsafe-inline': 인라인 스크립트 허용 (주의: 보안에 취약할 수 있음)
  • 'unsafe-eval': eval() 사용을 허용 (주의: 보안에 취약할 수 있음)
  • 도메인: 특정 도메인에서만 스크립트를 허용

스타일시트 리소스의 출처를 제어합니다. CSS를 포함하거나 로드할 수 있는 소스를 설정합니다.

  • 'self': 현재 도메인에서만 스타일을 허용
  • 'unsafe-inline': 인라인 스타일 허용 (주의: 보안에 취약할 수 있음)
  • 도메인: 특정 도메인에서만 스타일을 허용

이미지 리소스의 출처를 제어합니다. 외부에서 로드되는 이미지를 허용할지 여부를 결정합니다.

  • 'self': 현재 도메인에서만 이미지를 허용
  • https:: HTTPS로 제공되는 이미지 허용
  • data:: 데이터 URL 형식의 이미지 허용

AJAX, WebSocket, 이벤트 소스 등을 통해 외부 리소스와 연결하는 것을 제어합니다.

  • 'self': 현재 도메인에서만 연결 허용
  • https:: HTTPS를 통해서만 연결 허용

생성된 CSP 헤더

CSP 헤더 사용 방법

생성된 CSP 헤더를 웹 서버에 설정할 수 있습니다. 웹 애플리케이션의 보안을 강화하려면, 아래 두 가지 방법 중 하나로 CSP를 설정하세요.

  • HTTP 헤더 방식: 서버에서 직접 CSP 헤더를 설정합니다. 예를 들어, Apache 서버의 경우 .htaccess 파일에 다음과 같이 추가할 수 있습니다:
    Header set Content-Security-Policy "default-src 'self'; script-src 'self'; ..."
    Nginx의 경우 설정 파일에 다음과 같이 추가합니다:
    add_header Content-Security-Policy "default-src 'self'; script-src 'self'; ...";
  • HTML <meta> 태그 방식: CSP 정책을 HTML 문서의 <head> 섹션에 메타 태그로 추가할 수도 있습니다. 예를 들어:
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; ...">
    이 방법은 서버에서 HTTP 헤더를 설정할 수 없는 경우에 유용합니다.