Pull to refresh

Написать код и выложить пакеты — это только половина работы

Reading time3 min
Views1.3K
Ну ладно, не половина, а три четверти. Сегодня я хотел бы напомнить о том, что, опубликовав бинарные пакеты для любимых пользователей, разработчик не должен расслабляться. Особенно, если он публикует исходники. Почему же? А потому что недавно я скачал чужие исходники и вот что из этого вышло.
Сразу предупреждаю, что эта история будет не очень поучительна для людей с прямыми руками и системами контроля версий.

«Никому нельзя доверять, даже себе. Мне можно». Мюллер

Началось всё пару дней назад, когда у нас в жаббер-конференции qutIM кто-то запостил ссылку на новый мультипротокольный клиент, созданный в соответствии с пожеланиями пользователей портала asechka.su. По счастливой случайности клиент оказался основан на qutIM, соответственно был выпущен под GPL и внизу страницы автор опубликовал ссылку на исходники.

Я оказался любопытным и жадно кинулся качать эти исходники. Бинарник программы меня не интересовал, поэтому я ограничился тем, что скормил его на проверку virustotal.com — доводилось слышать о клиентах с троянами, которые выкладывает асечка.су. Но этот оказался чистым, и поэтому я перешел к архиву с исходниками. И тут меня ждал сюрприз.

Что же это такое? А это лежащие в архиве:
  • Сгенерированный каталог CMakeFiles и Makefile'ы
  • Файлы .directory, которые плодит Dolphin в KDE
  • Сгенеренные файлы проекта QtCreator
  • Один объектный файл
  • Несколько линуксовых бэкапных файлов (filename~)
  • Несколько пустых файлов bar_chunk.png_
  • Некий файл YandexPackSetup-ase4ka-20100630.exe, подозреваю, какой-то установщик этой самой асечки
  • Архив style.rar со стилями (rar внутри zip, круто, да?)
  • И самое смешное: папка qutim_vs, в которой лежит собранный бинарник программы, dll-ки с плагинами и папка config с настроенным gtalk-профилем


Когда я это увидел, я чуть не подавился чаем. Ну, думаю, может какой-то старый аккаунт, чисто для демонстрации или еще что. Но руки автоматически тянутся к файлу accountsettings.ini и через несколько минут я уже вбиваю логин и пароль в гмыло. Да, неожиданно для себя я вошёл в чужой профиль. Мне не хотелось пакостить или читать чужую почту, я успел только понять по первым заголовкам, что автор — некий фрилансер и хабрапользователь. Я отправил от его имени ему же самому письмо с сообщением, что кодить надо аккуратнее и приглашением зайти в конференцию кутима, где намеревался рассказать обо всех ляпах. Я пометил это письмо звёздочкой, как важное. Через полчаса обнаружив, что почту он не читает, я сменил еще и статус в gtalk в надежде, что кто-нибудь из друзей заметит и позвонит хозяину. Прождав ещё немного, я вышел из аккаунта.

На следующий день пароль сменился ближе к вечеру. По крайней мере, я ради интереса вбивал его днём, и он ещё работал.
За это время я мог вытащить из почты все пароли, письма от друзей, любовниц, девушки/жены, собрать информацию обо всех клиентах, присланных материалах и всём, что там только может быть. И всему виной был бы неаккуратно созданный архив. В конференцию к нам он так и не зашел, но сегодня я проверил — архив с исходниками на сайте сменился, почти весь вышеперечисленный хлам из него был вычищен. Собственно поэтому я и публикую данный топик без малейших угрызений совести, по моим стопам больше никто не пройдёт.

Молодой разработчик, запомни: любой свой труд надо пятьдесят раз проверять перед публикацией. Даже свои статьи я каждый раз проверяю: нет ли на картинке чего-нибудь лишнего, не запостил ли я случайно ссылку, не предназначенную для читателей. Что уж говорить о коде. Запомни также и другое: системы контроля версий — это хорошо. В них надо хранить код и не хранить сгенерированных файлов проектов, скомпилированных бинарников и прочей ереси. Любая система контроля версий умеет делать экспорт, порой даже (например, как bzr или git) сразу в архив. Пользуйтесь этим.

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

Хорошего дня и безопасных вам релизов.
Tags:
Hubs:
Total votes 139: ↑121 and ↓18+103
Comments27

Articles