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 には、それぞれ個別の利用条件が適用されます。フェイストラッキングは端末内で処理されますが、カメラ利用の同意と案内、アプリが追加で収集する分析情報については、アプリ開発者が責任を負います。
信頼境界を分ける
アプリのコード、利用者が指定したモデル URL、ZIP ファイル、カメラ入力は同じ信頼度ではありません。外部入力を受け取る場合は、検査と描画を分けてください。
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.')
}サーバーから URL を検査する場合は、HTTP(S) であることだけでなく、許可する hostname、解決後の IP、redirect 先も確認します。内部ネットワークへ接続できる環境では、アプリ側のネットワークポリシーが必要です。
公開前の確認項目
- Core、Framework、モデル、フォントのライセンスと再配布条件を確認します。
- Core、model3、texture、WASM、task の配信元と CORS を固定します。
- CSP の
script-src、connect-src、worker-srcを実際の構成に合わせます。 - エラーログにモデル URL、カメラ画像、顔の landmark を不要に保存しないよう確認します。
- unmount 後に MediaStream track、Worker、AudioContext、Canvas が残らないことを確認します。
モデルや Core を issue、CI artifact、公開リポジトリへ添付する前にも、それぞれの利用条件を確認してください。