imu-note
いむたろ
いむたろ
@imutaroh
新卒エンジニア / データ基盤 × AI

What — LICENSE はただの自己申告

LICENSE ファイルはただの自己申告。GitHub は「その人が本当に権利者か」を検証しないので、他人のコードに勝手に MIT を付けることも物理的にはできる(その場合の MIT 表示は法的に無効で、信じて使った側も侵害リスクを負う)。またライセンスはコードの中身に何も言っていない。マルウェア入りの npm パッケージにも MIT は付いている。

それでもライセンスに意味がある理由は4つ。

  1. 禁止の解除:著作権法のデフォルトは全面禁止。公開コードでもライセンスが無いと法的に使えない。これを解除する唯一の手段
  2. 交渉のゼロコスト化:定型文1枚で世界中に一括許可。作者への個別交渉なしで依存100個を使えるのはこのおかげ
  3. 作者の防御:AS IS(無保証)条項は「タダで配るけど責任は取らない」の明文化。個人が安心して公開できる
  4. 責任の所在の確定:偽って付けた人が侵害責任を負う。詐欺を防げなくても、誰が悪いかを確定させる根拠になる

How — 法律レイヤーと信頼レイヤーを分けて見る

つまり分担はこうなる。法律レイヤーはライセンスで解決、信頼レイヤー(メンテナは誰か・脆弱性は無いか)は別の道具で解決する。

  • 法律レイヤー:LICENSE ファイル・著作権表示・伝播するかどうか
  • 信頼レイヤー:活動履歴・issue の応答・lockfile での固定・govulncheck / npm audit

依存を選ぶときは、この2つを別々にチェックする。ライセンスが OK でも安全とは限らないし、逆に安全そうでもライセンスが無ければ使えない。片方で両方を判断しようとするのが事故のもと。

関連