Как защититься от многочисленных POST запросов в nginx?
Здравствуйте!
Есть к примеру url "/sms-auth", там форма отправки для авторизации по СМС.
Нужен совет по обеспечению защиты этого urlа от отправки многочисленных POST запросов.
Можно-ли защитится методами nginx или надо на что нить другое смотреть?
Кто сталкивался с такими задачами? Что можете посоветовать?
Заранее большое спасибо за любую помощь.
Какую проблему вы вообще пытаетесь решить? Вам спам летит на этот url? Или вы перебор кода хотите пресечь? Если второе, то это нужно на уровне приложения делать, а не веб-сервера.
Алексей Уколов, просто за каждый успешный submit формы уходит СМС, а так как каждый СМС снимается с баланса деньги хотелось бы по максимуму снизить вероятность отправки формы ботами или нечестными людьми.
Для этого уже давно придумали специальный инструмент, называется captcha. В любом случае, такую защиту нужно делать на уровне приложения - проверять капчу, смотреть количество запросов с одного ip, просто количество запросов за последние N минут и т.п.
Алексей Уколов, спасибо за ответ с капчой. При анализе логов идет очень много POST запросов от ботов. Посмотрел модуль ngx_http_limit_req_module. Можно установить лимит на запрос по ip, но как быть тогда с клиентами которые находятся за NATом?
Никак, именно поэтому я и говорю, что правильное решение этой задачи лежит вне конфига веб-сервера. Но если проблема стоит остро и нужен быстрый фикс, то можно и средствами nginx залататься. Как вы поняли, что это запросы от ботов - по ip, по заголовкам, по юзер-агенту? Вот это и используйте для фильтрации.
Алексей Уколов, на сегодня боты тоже поумнели что умеют предоставлять правильные заголовки и юзер-агенты. Значить будем вместе с программистами решать эту задачу. Спасибо большое за совет.