Вместо contains - equals?
Как считаете, если включить Bot Fight Mode (Режим боя с ботами), даст это какой-нибудь положительный результат? Потому как, пока я не вижу уменьшения прямых заходов на главную.
У меня КФ временно был отключен, но решил всё-таки сам проверить. Советчики на форуме КФ оказались так себе, правило действительно не работает с full, нужно выбирать path, в остальном все правильно и слэш эту на путь на главную страницу
(http.request.uri.path eq "/" and not http.referer contains "yandex" and not http.referer contains "ya.ru" and not http.referer contains "google")
Т. е. сделать вот так:
Странная последняя строчка. Мне кажется, так работать не будет.
Возможно надо сделать отдельную строку для каждого url при переходах по ссылкам с "левых" сайтов.
А что вообще логи КФ показывают? Для понимания: не работают правила или просто боты их проходят
Были заходы сегодня поддомен с 4:33:54 по 5:08:01 по /.well-known/acme-challenge, хотя в правиле указан этот url pach:
Потом были заходы начиная с 11:32:35:
А так во втором правиле (Choose action: Interactive challenge):
Вот так сейчас сделал в третьем правиле (Choose action: Block):
Для самых ленивых или новичков КФ показывает пример какому адресу соответствует: url full e.g. https://example.com/contact?page=1234 . Если в адресе будут например параметры то как ваш equal - слэш сработает?
Выберите другие правила по урл и посмотрите какой шаблон подойдет.
Также учитывайте какие правила выше - может они пропускают.
Я видел эти подсказки клауда, поэтому пробовал по разному, как написал выше, но прямые заходы всё равно идут. Помимо этого и переходы по ссылкам с "левых" сайтов также не уменьшаются.
Эмм, ну тут аналогично: URI Path contains /wp-admin/admin-ajax.php = block
Т.е. если в URL содержится путь /wp-admin/admin-ajax.php то блок.
Но, вы так можете заблочить петлевые запросы от WP и свои же запросы, работая в админке, да и поисковым роботам, порой, нужен запрос к этому URL.
Я бы сделал так:
(http.request.uri.path contains "/wp-admin/admin-ajax.php" and not http.referer contains "sitename.com" and ip.src ne xxx.xxx.xxx.xxx and not cf.client.bot) = block
sitename.com - имя вашего домена, без www и https://
xxx.xxx.xxx.xxx - IP вашего сервера
not cf.client.bot - не = хорошие боты
В итоге получим правило: если в URL содержится путь "/wp-admin/admin-ajax.php" и нет реферера вашего домена (т.е. запрос не от вашего сайта) и IP не принадлежит вашему серверу (т.е. запрос не от вашего сервера/сайта) и это не хороший бот (т.е не находится в белом списке поисковых ботов CF) = блок.
Таким образом все, кто не попадает под это правило, будут блокироваться при подобном запросе, а плагины, сайт, админка и поисковые боты - будут иметь доступ.
В общем, чтобы вас не путать, если хотите наглухо заблочить этот URL, то копируйте в редактор правил CF этот код: (http.request.uri.path contains "/wp-admin/admin-ajax.php") = block
Если хотите сделать исключение для админки, плагинов, сервера и поисковиков, то этот код: (http.request.uri.path contains "/wp-admin/admin-ajax.php" and not http.referer contains "sitename.com" and ip.src ne xxx.xxx.xxx.xxx and not cf.client.bot) = block
Проверять надо, правило со слешем вычитал у КФ на форуме давно, советовали именно так. У меня сейчас просто на все прямые заходы стоит капча.
Проверил, поставил сначала url full - equal - слэшу. Прямые заходы на главную не прекратились. Потом поставил url full - equal - полный адрес вида https://site.com/. Прямые заходы по-прежнему идут в большом количестве на главную. В этом правиле у меня стоит блок. Можете ещё что-нибудь подсказать?
Попробовал изменить и сохранить на полный адрес вида https://site.com/, выдало ошибку: API Request Failed: PATCH /api/v4/zones/736f2791ced32e6b882ac5be80176a48/rulesets/519a05edd7144d8ba9f9ca8027fc7e51/rules/ac8c6ff21e6e4e18aa66001f59fc90b5 (504).
Поэтому, скорее всего надо ставить один слеш. С одним слешем правило сохраняется.
Неправильно написал, если пытаешься сохранить полный адрес вида /site.com/, то тогда выдаёт ошибку. Если же вставить полный адрес вида https://site.com/, то сохраняется.