Как заблокировать GET на NGINX для определенного обслуживаемого каталога? (либо рефери, либо пользовательским агентом) - PullRequest
0 голосов
/ 31 марта 2020

Сервер, который я запускаю, в настоящее время получает спам ... hard ...

IP-адреса меняются каждые несколько запросов. Сервер теперь возвращает 403s за все, что было размещено в / contact /, но спам-скрипт / бот по-прежнему поражает сервер, занимая ресурсы и пропускную способность ...

Мой NGINX журнал показывает это как 50 раз в минуту:

123.456.789.012 - - [Month/Day/2020:13:37:05 -0500] "GET /contact/ HTTP/1.1" 200 5057 "-" "-"
123.456.789.012 - - [Month/Day/2020:13:37:04 -0500] "POST /contact/ HTTP/1.1" 403 580 "https://example.com/contact/" "User Agent String"

1.) Как заблокировать GET без пользовательских агентов? (все, что не имеет реферала или пользовательского агента "-" "-", я предполагаю, что это довольно уникально для любого скрипта / бота, который использует спамер.
2.) Правильно ли я считаю, что блокируя GET, он будет избавиться от поста? 3.) Есть ли другие способы справиться с этим потоком запросов или мне просто нужно подождать, пока злоумышленнику не надоест и не отключит скрипт / бот (ы)?

1 Ответ

0 голосов
/ 04 апреля 2020
В

Nginx встроено некоторое приличное ограничение скорости, вы можете настроить его на основе любой переменной, доступной в Nginx, чтобы вы могли применить ее к отдельным IP-адресам, диапазону IP-адресов, любому из заголовков запроса и т. Д.

Вы можете применять лимиты только в определенных местах, выберите способ обработки запросов сверх лимита и т. Д. c и т. c

Ознакомьтесь с руководством здесь для некоторых примеры.

...