Content Security Policy¶
HTTP 응답 헤더 Content-Security-Policy를 사용하면 사이트 관리자가 사용자 에이전트가 특정 페이지에 로드할 수 있는 리소스를 제어할 수 있습니다. 몇 가지 예외를 제외하고, 설정된 정책은 주로 지정된 서버의 출처와 스크립트 종료 지점을 다루어 사이트 간 스크립팅(Cross-Site Script) 공격을 방지하는 데 도움을 줍니다.
자세한 내용은 Content-Security-Policy를 참고하세요.
다중 콘텐츠 보안 정책¶
CSP는 Content-Security-Policy 헤더, Content-Security-Policy-Report-Only 헤더 및 meta 컴포넌트를 통해 하나의 리소스에 여러 정책을 지정할 수 있습니다.
예시:
// header
Content-Security-Policy: connect-src http://example.com/;
script-src http://example.com/
// meta tag
<meta http-equiv="Content-Security-Policy" content="connect-src http://example.com/;
script-src http://example.com/">
CSP를 사용하는 웹 애플리케이션에서 RUM SDK를 연동하는 방법¶
웹 애플리케이션에서 CSP를 사용 중이라면 Guance RUM SDK를 연동한 후 브라우저에서 보안 위반 경고가 나타날 수 있습니다. 다음 URL을 해당 지시문에 추가해야 합니다.
Datakit 업로드 URL¶
RUM SDK 초기화 설정의 datakitOrigin 옵션에 따라 다릅니다.
CSP 보안 지시문에 다음 항목을 추가하세요.
웹 워커¶
RUM SDK Session Replay 기능을 활성화했거나 RUM 초기화 설정에 compressIntakeRequests 설정을 추가한 경우, 다음 worker-src 항목을 추가하세요.
SDK 버전 >=3.2.0부터 웹 워커 파일을 자체 호스팅할 수 있습니다. SDK 설정에 workerUrl, replayCanvasWorkerUrl(SDK 버전 >= 3.3.0)을 추가하여 호스팅 주소를 지정합니다. 워커 파일은 다음 두 가지 방법으로 가져올 수 있습니다.
-
Guance 공식 주소 https://static.guance.com/browser-sdk/v3/worker.js 및 https://static.guance.com/browser-sdk/v3/canvas-worker.js에서 다운로드
-
@cloudcare/browser-worker NPM 패키지를 설치하고 빌드 도구를 사용하여 빌드 자산에 포함시킵니다(Webpack 4, Webpack 5, Vite 및 Rollup 문서 참조).
필수 조건
- 파일을 웹 애플리케이션과 동일한 출처(origin)에서 호스팅해야 합니다. 브라우저 제한으로 인해 별도의 도메인(예: 타사 CDN 호스트)이나 다른 스킴에서는 호스팅할 수 없습니다.
- SDK 버전이
>=3.2.0이어야 합니다.
CDN 주소¶
CDN 비동기 또는 CDN 동기 방식으로 RUM SDK를 도입하는 경우, 다음 script-src 항목을 추가하세요.