AWS WAF Как оценить ограничение пути по IP ниже минимума 2000 запросов / минуту - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть путь (mysite.com/myapiendpoint для примера), который требует значительных ресурсов для обслуживания, и очень подвержен злоупотреблению ботами.Мне нужно ограничить доступ к этому конкретному пути, например, 10 запросов в минуту на IP-адрес клиента.Как это можно сделать?

Я размещаю экземпляр EC2 с CloudFront и AWS WAF впереди.У меня включено стандартное «правило на основе скорости», но его 2000 запросов в минуту на минимум IP-адреса абсолютно непригодны для моего приложения.

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

Мой сайт не использует сеансы какого-либосортировать, поэтому я не думаю, что смогу сделать какое-либо ограничение скорости на самом сервере.Также имейте в виду, что мой сайт работает одним человеком, и я немного новичок в AWS:)

Как я могу ограничить использование на IP примерно 10 запросами в минуту, предпочтительно в WAF?

[Редактировать]

После дополнительных исследований мне интересно, могу ли я включить переадресацию заголовка на источник (работающий узел / экспресс) и использовать пакет ограничителя скорости.Это жизнеспособное решение?

Ответы [ 2 ]

0 голосов
/ 22 августа 2019

Использование правила дважды не будет работать, потому что правило, основанное на ставке WAF, будет учитываться на основе журналов наблюдения за облаком, оба правила будут считать 2000 запросов отдельно, поэтому оно не будет работать для вас.Вы можете использовать шаблон фронта облака автоматизации AWS-WAF и выбрать lambda / Athena parser, таким образом, подсчет запросов будет выполняться на основе логов s3, а также вы сможете блокировать запросы SQL, XSS и плохих ботов.

0 голосов
/ 14 января 2019

Не знаю, полезно ли это для вас, но я только что получил совет от службы поддержки AWS.Если вы добавите правило ограничения скорости несколько раз, оно эффективно уменьшает количество запросов каждый раз.По сути, каждый раз, когда вы добавляете правило, оно учитывает дополнительный запрос для каждого IP.Так сказать, IP делает один запрос.Если к вам применены 2 правила ограничения скорости, запрос учитывается дважды.Таким образом, в основном, вместо 2000 запросов, IP должен только сделать 1000, прежде чем он будет заблокирован.Если вы добавите 3 правила, он будет считать каждый запрос 3 раза, поэтому IP-адрес будет заблокирован при 667 запросах.

Другая вещь, которую они пояснили, состоит в том, что «окно» составляет 5 минут, но если общее количество составляетВ любом месте этого окна оно будет заблокировано.Я думал, что WAF будет оценивать запросы только через 5 минут.Так например.Допустим, у вас есть одно правило для 2000 запросов за 5 минут.Скажем, IP делает 2000 запросов в 1-ю минуту, затем только 10 запросов в течение следующих 4 минут.Сначала я понял, что IP будет заблокирован только через 5 минут (потому что WAF оценивает 5-минутное окно).Но, очевидно, если IP-адрес превышает лимит где-либо в этом окне, он будет немедленно заблокирован.Таким образом, если этот IP-адрес отправляет 2000 запросов в минуту 1, он фактически будет заблокирован в минуты 2, 3, 4 и 5. Но затем снова будет разрешен, начиная с минуты 6.Это многое прояснило для меня.Сказав это, я еще не проверял это.Я предполагаю, что техник службы поддержки AWS знает, о чем говорит, но определенно стоит сначала его протестировать.

...