security checklist

セキュリティチェックリスト

M0

  • MIT Licenseを追加した。
  • UI文字列を日本語で実装した。
  • Tauri CSPに unsafe-eval を含めない。
  • Tauri capabilityは core:default のみに限定した。
  • ファイルシステム、カメラ、マイク、外部通信の権限をM0では付与しない。
  • ONNX Runtime Web、MediaPipe、モデルファイルをM0では採用しない。
  • 依存関係レビューを docs/dependency_review.md に記録した。
  • npm audit --audit-level=moderate を通す。
  • npm run license:check を通す。
  • 本番ビルドを通す。
  • Tauri releaseビルドを通す。

M1以降で追加確認

  • PNG/WebPの拡張子、MIME、シグネチャを検証する。
  • 最大50 MB、最大8192 x 8192 px、最大67,108,864 pxを強制する。
  • EXIF/ICCなど不要メタデータをプロジェクトへ保存しない。
  • .motion2dproj 読み込み時に75 MB上限、スキーマ、パーツ、メッシュ、リグ、設定値を検証する。
  • .motion2dproj にカメラ映像、音声、外部モデル、絶対パス、個人情報ログを示す禁止データを含めない。
  • 内部保存名はUUIDにし、表示名と分離する。

v0.1完了時点の補足

  • .motion2dprojimage.assetIdimage.internalName はUUIDベースにし、UI表示用の image.displayName と分離した。
  • 新規作成するパーツID、メッシュID、メッシュ頂点ID、リグキーIDもUUIDベースにし、既存プロジェクトの旧ID形式は読み込み互換として許可する。
  • 既存 .motion2dprojassetId / internalName がない場合は、読み込み時に新しいUUIDを補い、保存時に新形式へ正規化する。
  • internalName<UUID>.png のみ許可し、絶対パス、OSユーザー名、任意ファイル名を保存名として使わない。