Rostelecom Security Labs

cURL HTTP Workflow

Скрипт мониторинга использует curl, но игнорирует HTTP статус. Найди строку, объясни проблему и предложи полноценный health-check.

📚 Теория: HTTP статусы и cURL (раскрыть)

Откуда брать статус?

curl возвращает код 0, если запрос завершился без сетевой ошибки. HTTP 500/503 всё равно дают exit code 0 — нужно явно читать статус из ответа.

⚠️ Используй -w "%{http_code}" или --fail-with-body.

Как диагностировать?

Выводи заголовки (-i), логируй тело, добавь таймауты и ретраи. Для JSON используй jq, для SLA — метрики.

🔐 Сохраняй токены в env, не в скриптах.

1. Мониторинг

Скрипт вызывает curl -s и считает, что всё ок.

2. Инцидент

Сервис отдаёт 503, но мониторинг не падает.

3. Ретроспектива

Добавляем проверку статуса, логирование и алерты.

Как надо: curl --fail --show-error --silent --retry, вывод статуса через -w, интеграция с Prometheus, тесты на 5xx в CI.

Контекст

DevOps написали простой скрипт health-check, но забыли про HTTP статусы и таймауты. В результате 500/503 проходят незаметно. Найди проблемную строку и опиши, как переписать мониторинг.

Скрипт

Загружаем скрипт…

Review

Проверка флага

После ревью зафиксируй флаг, чтобы дашборд засчитал лабораторию.