본문 바로가기

IT/검색 이력

CSP (Content Security Policy) 구체적인 사용 방법

반응형

1. CSP의 기본 원리

CSP는 웹 서버가 브라우저에게 어떤 콘텐츠가 안전하게 로드될 수 있는지 알려주는 보안 표준입니다. 이를 통해 XSS (Cross-Site Scripting) 공격과 같은 보안 위협을 방지할 수 있습니다.

2. CSP 지시문 사용하기

CSP는 다양한 지시문을 통해 콘텐츠 로딩을 제어합니다. 각 지시문은 특정 유형의 콘텐츠에 대한 정책을 정의합니다.

Content-Security-Policy: script-src 'self'; img-src 'self' https://images.example.com;

위 예시는 현재 도메인에서만 스크립트를 로드하고, 이미지는 현재 도메인과 "images.example.com"에서 로드하도록 제한합니다.

3. 보고 및 디버깅

CSP는 보고 기능을 통해 정책 위반을 서버에 자동으로 보고할 수 있습니다. 이를 통해 정책을 효과적으로 디버깅하고 관리할 수 있습니다.

Content-Security-Policy: default-src 'self'; report-uri /csp-report-endpoint;

4. 혼합 콘텐츠 문제 해결하기

HTTP와 HTTPS의 혼합 사용으로 인한 문제는 upgrade-insecure-requests 지시문을 사용하여 해결할 수 있습니다.

Content-Security-Policy: upgrade-insecure-requests;

이 지시문은 브라우저가 가능한 경우 모든 HTTP 요청을 HTTPS로 자동 업그레이드하도록 합니다.

5. 인라인 스크립트와 스타일 처리하기

인라인 스크립트나 스타일은 보안 문제를 일으킬 수 있으므로, CSP는 기본적으로 이를 차단합니다. 이를 허용하려면 해시나 nonce를 사용할 수 있습니다.

Content-Security-Policy: script-src 'self' 'nonce-abc123';

위 예시는 nonce 값이 "abc123"인 인라인 스크립트만 허용합니다.

결론

CSP는 웹 보안을 강화하는 강력한 도구입니다. 지시문과 정책을 올바르게 구성하면 다양한 보안 문제를 효과적으로 해결할 수 있습니다.

반응형