Skip to main content

Защита от DDoS атак

Love&Pay использует многоуровневую систему защиты от DDoS атак. В редких случаях, когда наша инфраструктура подвергается атаке, система автоматически подключает дополнительные шлюзы для фильтрации вредоносного трафика.
Во время подключения защитных шлюзов возможны кратковременные перебои в работе API. Обычно это занимает от нескольких секунд до нескольких минут.

Коды ошибок при DDoS защите

В момент активации защиты или во время атаки вы можете получить следующие ответы от сервера:
КодОшибкаОписание
503Service UnavailableСервер временно не может обрабатывать запросы из-за перегрузки или подключения защитных шлюзов
502Bad GatewayСервер-шлюз не получил ответа от основного сервера
504Gateway TimeoutПревышено время ожидания ответа от сервера
500Internal Server ErrorСервер столкнулся с непредвиденной ситуацией
429Too Many RequestsСлишком много запросов — возможно, ваш IP попал под фильтрацию
408Request TimeoutПревышено время ожидания запроса

Что делать при получении ошибок?

1

Не паникуйте

Кратковременные ошибки во время DDoS защиты — это нормально. Система автоматически восстановится.
2

Подождите и повторите

Подождите 30-60 секунд и повторите запрос. В большинстве случаев сервис восстанавливается быстро.
3

Реализуйте retry-логику

Ваш код должен автоматически повторять запросы при получении ошибок 5xx.
4

Проверьте статус

Следите за нашими каналами связи для информации о текущих инцидентах.

Рекомендации по обработке ошибок

Exponential Backoff

При получении ошибок 5xx рекомендуем использовать стратегию exponential backoff:
async function requestWithRetry(url, options, maxRetries = 5) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      const response = await fetch(url, options);

      // Если ошибка 5xx — повторяем
      if (response.status >= 500) {
        throw new Error(`Server error: ${response.status}`);
      }

      return response;
    } catch (error) {
      // Ждём перед повтором: 1с, 2с, 4с, 8с, 16с
      const delay = Math.pow(2, attempt) * 1000;
      console.log(`Попытка ${attempt + 1} неудачна. Повтор через ${delay}мс...`);
      await new Promise(resolve => setTimeout(resolve, delay));
    }
  }

  throw new Error('Превышено количество попыток');
}

Обработка в вашем приложении

Показывайте понятные сообщения

Не показывайте пользователям технические ошибки. Сообщите что сервис временно недоступен.

Сохраняйте данные локально

При создании счетов сохраняйте данные локально и отправляйте повторно при восстановлении связи.

Используйте очереди

Для критичных операций используйте очереди сообщений (Redis, RabbitMQ).

Логируйте ошибки

Записывайте все ошибки для последующего анализа и отладки.

Как понять что идёт атака?

Если вы получаете множественные ошибки 503/502/504 в течение нескольких минут — скорее всего, идёт DDoS атака и система активирует защиту.
Признаки активной защиты от DDoS:
  • Периодические ошибки 503 Service Unavailable
  • Увеличенное время ответа API
  • Временные таймауты при запросах
  • Ошибки 502/504 от прокси-серверов

Связь с поддержкой

Если ошибки продолжаются более 15 минут:

Напишите в онлайн-чат

Наша команда мониторит все инциденты и оперативно информирует о статусе восстановления. Напишите нам на loveandpay.io если у вас срочный вопрос.
Мы прилагаем все усилия чтобы минимизировать влияние атак на работу сервиса. Спасибо за понимание!