Kodokon kodokon.com

Базовая безопасность разработчика

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

8 мин · 3 вопросов

Открыть этот урок в Kodokon

Не нужно ждать, пока станешь экспертом, чтобы себя защитить. Уже с первой недели ты работаешь с чувствительными вещами: почтовый ящик, аккаунт на платформе для кода, иногда ключи доступа к платным сервисам. Несколько привычек, взятых сейчас, избавят тебя от очень конкретных неприятностей позже - например, от счёта на несколько сотен евро, накрученного по украденному ключу.

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

Дальше идёт вопрос секретов в коде. Секрет - это ключ API, пароль от базы данных или токен доступа: строка символов, которая доказывает, что это именно ты. Правило абсолютное: секрет никогда не пишется прямо в файле с кодом. Ты хранишь его в файле .env, который остаётся на твоей машине, и добавляешь этот файл в .gitignore, чтобы он никогда не ушёл в интернет.

BASH
# .env: остаётся на твоей машине, никому не передаётся
API_KEY=secret_key_do_not_publish
DB_PASSWORD=local_password

# .gitignore: говорит Git игнорировать эти пути
.env
node_modules/
Секреты живут в .env, а .gitignore не даёт Git их отслеживать.

И наконец, относись с осторожностью к командам, найденным в интернете. Никогда не запускай строку, которую не понимаешь, особенно если она начинается с sudo: это слово означает «с правами администратора», то есть власть изменить или стереть на машине что угодно. Та же осторожность с установочными скриптами, которые скачивают и запускают одним движением.

BASH
# Так лучше не делать: запускается, а ты ничего не прочитал
curl https://example.test/install.sh | bash

# Лучше: скачать, прочитать, а потом решать
curl -o install.sh https://example.test/install.sh
less install.sh
bash install.sh
Скачать и прочитать скрипт перед запуском занимает тридцать секунд.

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Где нужно хранить ключ API в проекте?
    • Прямо в файле с кодом, так ведь проще
    • В локальном файле .env, исключённом из репозитория через .gitignore
    • В сообщении коммита, чтобы легко было найти снова
  2. Ты по ошибке опубликовал секретный ключ, а потом удалил файл. Что делать?
    • Больше ничего, файла ведь уже нет
    • Отозвать ключ в сервисе и сгенерировать новый
    • Переименовать репозиторий, чтобы замести следы
  3. Почему стоит опасаться скопированной из интернета команды, которая начинается с sudo?
    • Потому что она всегда выполняется медленнее
    • Потому что она выполняется с правами администратора и может изменить что угодно
    • Потому что она работает только в Windows