문서 둘러보기보안과 라이선스

live2d-web 문서

보안과 라이선스

자산 제공 방식, CSP, 개인정보, 라이선스 주의 사항을 확인합니다.

CSP와 신뢰하지 않는 모델

model3.json은 신뢰할 수 없는 입력으로 다루세요. 렌더링하기 전에 파일 크기, 외부 URL, CORS 설정을 검사하는 편이 안전합니다. URL 검사에서는 모델이 참조하는 HTTP(S) 자산을 실제로 가져옵니다. 브라우저에서는 CORS가 적용되지만 Node 서버에는 사설망 접근을 막는 장치가 없습니다. 서버에서 외부 모델 URL을 검사한다면 앱에서 허용할 호스트와 네트워크 범위를 제한해야 합니다. 로컬 압축 파일을 검사할 때는 그 안에 선언된 외부 URL을 요청하지 않습니다.

  • Cubism Core를 불러올 출처를 script-src에 허용합니다.
  • 모델·WASM·트래킹 자산의 출처를 connect-src에 허용합니다.
  • 모듈 Worker를 사용한다면 worker-src를 설정합니다.
  • 가능하면 자산을 직접 호스팅하고 CORS 정책을 명확히 지정합니다.

라이선스와 개인정보

live2d-web은 Live2D의 공식 제품이 아닙니다. Cubism Core, Framework, 모델, MediaPipe에는 각각 별도의 이용 조건이 적용됩니다. 얼굴 추적은 사용자의 기기에서 처리되지만, 카메라 사용 동의와 안내, 앱에서 추가로 수집하는 분석 정보는 앱 개발자가 책임져야 합니다.

신뢰 경계 정하기

JSON 파싱에 성공했다고 신뢰할 수 없는 압축 파일을 렌더링하지 마세요. 먼저 검사하고 크기와 파일 수를 제한하며 경로 탈출과 외부 참조를 거부합니다. 서버 URL 검사에는 host allow-list와 outbound network 제한이 모두 필요합니다.

const report = await inspectModelSource({
  src: submittedUrl,
  limits: {
    maxAssetBytes: 32 * 1024 * 1024,
    maxTotalBytes: 128 * 1024 * 1024,
    maxReferences: 512,
  },
})
 
if (report.status === 'incompatible')
  throw new Error('The model cannot be rendered safely.')

배포 전 확인하기

Core와 모델의 배포 권한, MediaPipe WASM과 task 파일의 출처, third-party notice를 확인하세요. CSP는 report-only로 먼저 점검한 뒤 * 없이 모델 로드, Worker 생성, 카메라 권한이 작동하는지 검증합니다.