Есть ли что-то конкретное, что можно сделать, чтобы сделать сервер Django Channel менее восприимчивым к легкой или случайной атаке DDoS или увеличению общей нагрузки от клиентов websocket/HTTP? Поскольку каналы не являются по-настоящему асинхронными (все еще рабочие за кулисами), я чувствую, что было бы довольно легко удалить веб-сайт на основе каналов - даже с довольно простым оборудованием. В настоящее время я создаю приложение на каналах Django и позже запускаю некоторые тесты, чтобы увидеть, как он держится.
Есть ли какая-то форма дросселирования, встроенная в Дафни? Должен ли я реализовывать дросселирование на уровне приложения? Это все равно будет медленным, так как рабочий все еще обрабатывает дроссельный запрос, но запрос может быть намного быстрее. Есть ли что-нибудь еще, что я могу сделать, чтобы попытаться сорвать эти атаки?
Я думал, что всегда должен быть обеспечен рабочий, назначенный для определенных каналов. Таким образом, если канал websocket перегружается, HTTP все равно будет реагировать.
Изменить: мне хорошо известно, что защита от DDoS на низком уровне - идеальное решение, и я понимаю, как работают DDoS-атаки. То, что я ищу, - это решение, встроенное в каналы, которые могут помочь справиться с такой повышенной нагрузкой. Возможно, способность Дафны увеличивать канал и масштабировать другой, чтобы компенсировать, или метод дросселирования, который может уменьшить вес на запрос после определенной точки.
Я ищу конкретный ответ дафни/каналов - общие ответы об DDoS или общей загрузке не являются тем, что я ищу - есть много других вопросов по поводу этого.
Я мог бы также управлять дросселированием на основе того, кто вошел в систему, а кто нет - дроссель для пользователей, которые не вошли в систему, может помочь.
Изменить еще раз: прочитайте весь вопрос! Я не ищу общие рекомендации по смягчению DDoS или объяснения низкоуровневых подходов. Мне интересно, поддерживает ли Дафна что-то вроде:
- Троттлинг
- Динамическое назначение работника на основе размера очереди
- Middleware для обеспечения приоритета аутентифицированных запросов
Или что-то в этом роде. Я также собираюсь обратиться к сообществу каналов прямо на это, так как SO не может быть лучшим местом для этого вопроса.