The Daily WTF на русском
Подписаться
CodeSOD: Авторизованный регистратор
Команда разработчиков Гретхен была приобретена Initech в рамках покупки компании. Initech интересовали их успешные программные продукты и талант разработчиков. Изначально команда Гретхен была успешной, получив автономию в проектах. Они могли повторно использовать существующий код или переписывать его и выбирать собственные инструменты, что приводило к положительным результатам. Однако позже Гретхен была назначена на проблемный проект, характеризующийся постоянным "тушением пожаров". Кодовая база проекта демонстрировала плохие практики, такие как неадекватная обработка null.Приложение было ограничено устаревшей версией NodeJS, которая больше не получала обновлений. Гретхен отметила отсутствие последовательных соглашений по кодированию и отсутствие логирования. Даже существующий механизм логирования был неэффективен, выводя только слово "DEBUG" независимо от содержания сообщения. Код обрабатывал HTTP-запросы, вставляя тело запроса непосредственно в базу данных без проверки. Эта конкретная функция демонстрировала нерешительность, пытаясь использовать два разных метода для копирования данных запроса.Кроме того, система во многих местах полагалась на прямые SQL-запросы, создавая значительные уязвимости SQL-инъекций. В коде также отсутствовали критически важные проверки авторизации, причем большинство конечных точек были полностью незащищены. Даже критически важные конечные точки, такие как административный API, имели дублирующиеся версии без какой-либо настроенной аутентификации. Эта ситуация подчеркнула серьезный недостаток безопасности и качества кода в проекте.