Блокировка на основе полного URL, а не только URI в AWS WAF - PullRequest
1 голос
/ 10 марта 2020

Я использую AWS WAF для нескольких дистрибутивов CloudFront, которые go для разных URL-адресов. Вообще говоря, это работает хорошо. Однако мы заметили особую активность на нескольких базовых сайтах, которые я хочу заблокировать, но я не хочу блокировать ее на всех сайтах.

Мне показалось достаточно простым создать WAF Правило, которое будет соответствовать регулярному выражению на URI и блокировать на основе этого. Однако, похоже, что AWS WAF не использует хост в сопоставлении URI. Например, это правило:

Inspect URI, Block based on RegEx with RegEx being:

^(http|https):\/\/(www)?\.?example\.net\/(.*)?\/*.html$

И эти тестовые URL работают в моем тестере регулярных выражений:

http://example.net/blah.html
https://example.net/blah.html
http://www.example.net/blah.html
https://example.net/stuff/blah.html

Когда я применяю его к WAF, он не блокируется.

Есть ли что-то еще, что я могу сделать здесь, чтобы достичь того, что я хочу сделать? Я не хочу редактировать что-либо непосредственно на моих хост-серверах, потому что это было бы скорее головной болью при обслуживании, и это не решило бы проблему, которую я пытаюсь решить (которая заключается в том, чтобы не дать ботам спамить плохие URL-адреса и засечь мой сервер с помощью 404).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...