Ну, во-первых, давайте определимся с термином "DDOS". Это означает Распределенный отказ в обслуживании, ключевое слово распространяется. Если вы ограничиваете количество соединений на один IP, это не имеет значения, потому что у вас есть сотни тысяч разных IP-адресов, которые бьют вашу систему.
Таким образом, вы ограничиваете размер запроса. Отлично, как вы различаете парня F5ing и узел в ботнете?
Но что угодно, скажем, у нас есть волшебный алгоритм анализа поведения. DDoS-атаки направлены на то, чтобы израсходовать ресурсы сервера и обеспечить недоступность компьютера - использование сложной аналитики данных для проблемы, вызванной нехваткой ресурсов, усугубит проблему, а не решит ее.
Печальный факт в том, что даже игнорирование соединения требует некоторых ресурсов. Вы могли бы рассмотреть возможность поиска службы, такой как Cloudflare, которая смешивает кэширование для низкого использования ресурсов на запрос с (я полагаю) обнаружением DDoS с помощью человека, но повторная реализация этой службы самостоятельно, вероятно, выходит за рамки большинства проектов и может значительно увеличить сложность.