it-swarm-ja.com

Githubでは別のユーザーとしてコミットできます

Gitの使用方法を学んでいますが、コミット時にuser.nameとuser.emailを制御できないことに気づきました。たとえば、私は自分のリポジトリ内にいます。ローカル設定を変更できます。

$ git config user.name "<someone's Github username>"
$ git config user.email "<someone's Github email>"

次に、何かをコミットしてプッシュします。 Githubのユーザー名とパスワードの入力を求められます。

これで、別のGithubユーザーが私のリポジトリでそのコミットを作成したように見えます。 !?

私は何かが足りないのですか?

7
whitenoisedb

うわー、これは素晴らしい質問です。なぜこれが注目されていないのかわかりません(おそらく、SUよりもセキュリティに関連しているわけではないためです)。

それについてのハッカーニュースの議論があります- https://news.ycombinator.com/item?id=7792026

これは大きな問題ではありませんが、深刻な悪用を行う可能性があります-

  1. 有名人からのコミットを公開して、彼らがあなたのプロジェクトを支持し、積極的に貢献しているように見せることができます。
  2. 他の実際のGitHubユーザーの複数のIDを使用して、プロジェクトが実際に持っている貢献者の数を偽造することができます。 (これは、ランダムな電子メールを使用するよりもはるかに合法的に見えます)
  3. ほとんどのコミットが別の信頼できるユーザーからのものであると彼に思わせることで、プルリクエストをプロジェクトにマージするように誰かを説得できるかもしれません。

最近、GitHubは 批判 プロジェクトの所有者がプロジェクトで返信するユーザーのコメントを編集して、自分が書いたものではないものを書いたように見せることができ、深刻な悪用につながる可能性があります。これは非常によく似ています。

他の回答が述べているように、これはGitが設計された方法です。内部リポジトリでは、このようなことはあまり気にせず、レピュテーションではなくコードの管理に主に関心があります。一方、GitHubはソーシャルツールであり、ユーザーの一般的な評判に注意を払う必要があります(ハッカーのニュースディスカッションで言及されているように、これはPK暗号化によって解決できます。多くのユーザーは、プッシュ権限のためにすでにPKをGitHubアカウントに割り当てています。同じキーができると思います。コミットに署名するために使用されます)

6
Yoni Jah

Gitには、誰が何を作成したかを知る方法がありません。どうやって知ることができますか?それがしているのは、あなたが報告するように言ったことを報告することだけです。ガベージイン、ガベージアウト。

ある人が別の人の仕事をすることは絶対に正常で日常的なことです。

2
David Schwartz