Віктор Турський про програмування / навігатор

Інженерна майстерність і карʼєра / крок 11

Голосове №1 — чому не можна давати розробникам адмінські ключі

середній 03:32 дивитися на YouTube ↗

Розділи

Про що це відео

Перший випуск нового аудіоподкаст-формату лише для спонсорів: коротші, невимушені життєві історії з розробки, записані тоді, коли автор у дорозі й не може зняти повноцінне відео (повні відео він береже для глибоких фундаментальних тем, які не старіють). Ця історія — байка про принцип найменших привілеїв. Колись, коли вони з Антоном Морозовим заснували Webbylab із маленькою командою, вони попросили розробника написати скрипт аналітики/звітності для Redmine і сперечалися, який API-ключ видати — адмінський чи звичайний. Обрали адмінський, мовляв, «нічого поганого не станеться».

Головне

  • Розробник не мав злого наміру: він знайшов на GitHub бібліотеку для Redmine API, скопіював приклад прямо з її документації і запустив із адмінським ключем — а зразкові виклики з прикладу видалили користувача №2, перейменували користувача №5 і так далі.
  • Реальні наслідки виринали днями: співзасновник Антон більше не міг залогінитися (його користувача було видалено); за тиждень написав український клієнт Олександр із питанням, чому його перейменували на «Рауль» з українським прізвищем — код із прикладу перезаписав реальні записи.
  • Висновок автора: давати розробникам адмінські ключі — погана ідея. Обмежуйте креденшали під задачу (least privilege), бо навіть випадковий скопійований код із прикладу може наробити лиха з підвищеними правами.
  • Про формат: це перша з запланованої серії таких історій; він каже, що записувати їх швидко, тож робитиме це регулярно.

Теми відео

Частина цих треків