6

Я изучаю, как использовать Git, и заметил, что при коммите нет никакого контроля над user.name и user.email. Например, я в своем хранилище. Я могу изменить свой локальный конфиг,

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

Затем я что-то совершаю и подталкиваю. Мне будет предложено ввести имя пользователя и пароль Github.

Теперь кажется, что другой пользователь Github создал этот коммит в моем хранилище. !?

Я что-то пропустил?

2 ответа2

5

Ух ты, это отличный вопрос, я не понимаю, почему этому не уделяется больше внимания (возможно, потому что это не совсем связано с безопасностью, чем SU).

Об этом идет обсуждение хакерских новостей - https://news.ycombinator.com/item?id=7792026

Это не главная проблема, но вы можете сделать с ней серьезные злоупотребления -

  1. Вы можете публиковать коммиты от известных людей, создавая впечатление, что они поддерживают ваш проект и активно участвуют в нем.
  2. Вы можете подделать количество участников вашего проекта, используя несколько идентификаторов других реальных пользователей GitHub. (это будет выглядеть более законно, чем просто использование случайных электронных писем)
  3. Возможно, вам удастся убедить кого-то включить запрос на включение в его проект, заставив его думать, что большинство коммитов поступило от другого доверенного пользователя.

Недавно GitHub подвергся критике за то, что он также позволял владельцам проектов редактировать комментарии пользователей, отвечающих в своем проекте, создавая впечатление, что они пишут вещи, которые не пишут, что может привести к серьезным злоупотреблениям. Это очень похожая вещь.

Как уже упоминалось в других ответах, Git был разработан именно так. во внутреннем репо вы не очень заботитесь об этом, и вы в основном заботитесь об управлении кодом, а не о репутации. GitHub, с другой стороны, является социальным инструментом и должен заботиться о своей публичной репутации пользователя (как упоминалось в обсуждении хакерских новостей, это разрешимо с помощью шифрования PK. У многих пользователей уже есть PK, назначенный их учетной записи GitHub для push-разрешений. использоваться для подписания коммитов)

2

У Git нет возможности узнать, кто что написал. Как это могло знать? Все, что он делает, это сообщает, что вы говорите, чтобы сообщить. Мусор на входе, мусор на выходе.

Абсолютно нормально и привычно для одного человека совершать работу другого человека.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .