---
title: 콘텐츠 보안 정책(CSP)
sidebar:
  order: 6
i18nReady: true
---

Tauri는 HTML 페이지의 [콘텐츠 보안 정책](CSP)을 제한합니다.
이를 사용하면 크로스 사이트 스크립팅(XSS)과 같은 일반적인 웹 기반 취약점의 영향을 완화하거나 방지할 수 있습니다.

로컬 스크립트는 해시 처리되고, 스타일과 외부 스크립트는 "일회용 암호화 난수 데이터(nonce)"를 사용하여 참조되므로 허가되지 않은 콘텐츠가 로드되는 것을 방지할 수 있습니다.

:::caution[(경고)]
CDN(콘텐츠 전송 네트워크)을 통해 제공되는 스크립트와 같은 원격 콘텐츠는 "공격 벡터"(진입 경로)를 가져올 수 있으므로 로드를 피해야 합니다.
일반적으로 신뢰할 수 없는 파일은 모두 새로운 교묘한 공격 벡터의 침입을 허용할 수 있습니다.
:::

CSP(콘텐츠 보안 정책)에 의한 보호는 Tauri 설정 파일에 등록된 경우에만 유효합니다.
따라서 가능한 한 대상을 좁혀 Webview가 신뢰할 수 있는 호스트(가급적이면 자신이 소유한 호스트)의 자산만 로드하도록 해야 합니다.
컴파일 시 Tauri는 번들된 코드와 자산에 대해 관련 CSP 속성에 nonce 값과 해시 값을 자동으로 추가하므로, 직접 고려해야 할 것은 애플리케이션에 고유한 것뿐입니다.

다음 CSP 설정 예는 Tauri의 [`api`](https://github.com/tauri-apps/tauri/blob/dev/examples/api/src-tauri/tauri.conf.json#L22) 예제에서 발췌한 것입니다.
애플리케이션 개발자는 이 내용을 각자의 애플리케이션 요구에 맞게 조정해야 합니다.

```json title="tauri/examples/api/src-tauri/tauri.conf.json"
  "csp": {
        "default-src": "'self' customprotocol: asset:",
        "connect-src": "ipc: http://ipc.localhost",
        "font-src": ["https://fonts.gstatic.com"],
        "img-src": "'self' asset: http://asset.localhost blob: data:",
        "style-src": "'unsafe-inline' 'self' https://fonts.googleapis.com"
      },
```

이 CSP(콘텐츠 보안 정책)에 의한 보호 방식에 대한 자세한 내용은 [`script-src`], [`style-src`] 및 [CSP Sources]를 참조하십시오.

[콘텐츠 보안 정책]: https://developer.mozilla.org/ko/docs/Web/HTTP/CSP
[`script-src`]: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Content-Security-Policy/script-src
[`style-src`]: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
[CSP Sources]: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources
