본문 바로가기

SW Dev Portfolio

Content-Security-Policy (CSP) 헤더 관하여 알아보았다

반응형

누락된 Content-Security-Policy (CSP) 헤더를 추가하여 웹 애플리케이션의 보안을 강화하는 방법은 다음과 같습니다:

Content-Security-Policy 헤더 생성:

서버 측 코드나 웹 서버 설정을 통해 HTTP 응답 헤더에 Content-Security-Policy (CSP) 헤더를 추가합니다. 이 헤더는 웹 브라우저에게 CSP 정책을 전달합니다.

CSP 정책 구성:

CSP 정책은 웹 애플리케이션의 요구 사항에 맞게 구성되어야 합니다. 이 정책은 어떤 리소스가 로드될 수 있는지 및 어떤 리소스가 실행될 수 있는지를 제어합니다.
일반적으로 'self'를 사용하여 현재 호스트에서 리소스를 로딩하도록 설정하며, 외부 도메인이나 인라인 스크립트 및 스타일을 허용하지 않도록 설정할 수 있습니다.

외부 도메인 및 하위 경로 제한:

CSP를 사용하여 외부 도메인에서 로드되는 리소스를 명시적으로 허용합니다. 예를 들어, CDN에서 호스팅되는 자바스크립트 파일이나 이미지를 사용하는 경우 해당 도메인을 CSP 정책에 추가합니다.
필요한 경우, 특정 리소스 경로에 대한 제한을 설정할 수 있으며, 이로써 불필요한 요청을 차단할 수 있습니다.

인라인 스크립트와 스타일 처리:

가능한 인라인 스크립트와 스타일을 피하고 외부 파일로 이동합니다. 인라인 스크립트 및 스타일은 'unsafe-inline' 정책을 필요로 하므로 최대한 사용을 피해야 합니다.
만약 인라인 스크립트를 사용해야 하는 경우, 'nonce' 또는 해시를 사용하여 해당 스크립트를 허용할 수 있습니다.

보고 정책 설정:

보안 이벤트를 모니터링하고 보고 받을 수 있도록 CSP 보고 정책을 설정합니다. 이를 통해 어떤 정책이 위반되었는지를 파악하고 대응 조치를 취할 수 있습니다.

정책 테스트 및 조정:

CSP 정책을 테스트하고 웹 애플리케이션이 예상대로 동작하는지 확인합니다. 필요한 경우 정책을 조정하고 보안과 애플리케이션 기능을 균형있게 유지합니다.
누락된 CSP 헤더를 추가하면 웹 애플리케이션의 보안을 강화하고 XSS 공격과 같은 보안 위협을 줄일 수 있습니다. 정책을 구성할 때 웹 애플리케이션의 요구 사항을 고려하고, 정책을 최적화하려면 필요한 리소스만을 허용하도록 조치해야 합니다.

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' code.jquery.com https://ssl.google-analytics.com; style-src 'self' 'unsafe-inline';">
    <title>Your Page Title</title>
</head>
<body>
    <!-- Your web page content here -->
</body>
</html>

위의 코드에서 <meta> 태그 내의 http-equiv 속성을 사용하여 CSP 헤더를 정의하고, content 속성에 실제 CSP 정책을 설정합니다. 이 예시 코드는 다음과 같은 정책을 정의하고 있습니다:

default-src 'self';: 현재 호스트에서 모든 리소스 로딩을 허용합니다.
script-src 'self' code.jquery.com https://ssl.google-analytics.com;: 현재 호스트 및 지정된 외부 도메인에서 스크립트 리소스를 로딩하도록 설정하며, 인라인 스크립트를 허용합니다.
style-src 'self' 'unsafe-inline';: 현재 호스트에서 스타일 리소스를 로딩하도록 설정하며, 인라인 스타일을 허용합니다.
이 예시 코드를 웹 페이지의 <head> 태그 내에 추가하면 해당 정책이 웹 페이지에 적용됩니다. 이러한 정책을 조정하여 웹 애플리케이션의 요구 사항에 맞게 보안을 설정할 수 있습니다.

주의: 이 예시 코드는 기본적인 CSP 정책을 설정하는 것이며, 실제 애플리케이션의 보안 요구에 따라 정책을 수정해야 합니다. CSP 정책을 조정할 때에는 신중하게 검증하고 테스트해야 합니다.

반응형