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 헤더를 설정할 수 없는 경우에 유용합니다.