The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Борьба с web-ботами через запрет HTTP/1.1
Как один из вариантов борьбы с AI-скрапперами, создающими огромную паразитную
нагрузку на сервер, предложено ограничить доступ к сайту по протоколу HTTP/2
и полностью отключить поддержку HTTP/1.0 и HTTP/1.1. Логика подобного решения в
том, что все современные браузеры поддерживают HTTP/2, а боты почти всегда
обращаются к сайтам по HTTP/1.1 и пока не пытаются использовать HTTP/2 в случае
невозможности отправить запрос на HTTP/1.1.

При этом важно учесть, что RSS-ридеры и полезные поисковые боты, такие как
Google Bot, также ограничены использованием HTTP/1.1 и для них необходимо
сделать исключение.

Пример правил для http-сервера Caddy, возвращающих клиенту ошибку при обращении по HTTP/1:

   @http-too-old {
       not protocol http/2+
       not path /rss.xml /atom.xml # allow rss
       # Белый список для поисковых ботов и старых браузеров
      not header_regexp User-Agent (?i)(Google-Site-Verification|googlebot|bingbot|duckduckbot|mastodon|^Lynx)
   }

   example.com {
       ....
       handle @http-too-old {
          respond 418
       }
   }


Пример для nginx:

   http {
      ...
      map $server_protocol $is_http2 {
          default 0;
          "HTTP/2.0" 1;
          "HTTP/3.0" 1;
      }

      map $request_uri $is_rss {
          default 0;
          ~^/(rss\.xml|atom\.xml)$ 1;
      }

      map $http_user_agent $is_bot {
          default 0;
          ~*Google-Site-Verification 1;
          ~*googlebot 1;
          ~*bingbot 1;
          ~*duckduckbot 1;
          ~*mastodon 1;
          ~*^Lynx 1;
      }
   }
   server {
      ...
      if ($is_http2 = 0) {
         if ($is_rss = 0) {
            if ($is_bot = 0) {
                return 418;
            }
         }
      }
   }
 
09.03.2026 , Источник: https://sheep.horse/2026/3/blocking...
Ключи: ai, bot, caddy, nginx, filter / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Ограничение доступа и ресурсов, безопасность

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (1), 19:01, 09/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Так себе идея, не учитывающая много исключений.
    Мы сделали чуть сложнее - проанализировали набор заголовков, используемых провайдеров, подсети и собрали набор маркеров. При поступлении запроса он (с помощью кода на lua в nginx) анализируется, при совпадении любого из маркеров ему начисляются очки. Например если Firefox шлет Chrome-специфичный заголовок, используется китайская локаль (90% скрейперов нападающих на наш хостинг имеют китайскую локаль), поведение не соответствует версии браузера, меченая ASN и т.д. Набрал больше первого порога - страницу отдаем, но с минимальной скоростью (в планах челлендж, но это потом). Набрал выше второго порога - давай до свидания! (с)
    В среднем 27-35% трафика летит в 444, еще 8-10 отдается с задержкой. И с момента внедрения нагрузка на ноды бэкендов ни разу не превысила штатную.
     
     
  • 2.2, Гость (??), 20:58, 09/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С ботами из сети Tencent как? оттуда валится столько запросов и входящего трафика, что лучше из банить до http сервера.
     
     
  • 3.4, Аноним (1), 06:52, 10/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    С ними проще - можно банить прям подсетями. Брать из BGP списки подсетей принадлежащие AS Tencent, Alibaba, Huawei cloud и пр. и закидывать пачками в ipset/netfilter. Простенький скрипт в кроне раз в неделю
     
  • 3.14, Аноним (14), 09:09, 15/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > С ботами из сети Tencent как? оттуда валится столько запросов и входящего
    > трафика, что лучше из банить до http сервера.

    Ну так поставь им -j DROP или что там у тебя - прямо по подсети их датацентров, что ты как маленький, файрвол никогда не видел?! Да, чайники очень наглые. И вынос их подсеток сильно разгружает сервера.

    Просто посмотри какие подсетки в топчатре - посмотри чье это - и расчистка даже просто топ10 этого хитпарада уже сильно разгружает сервак. И да, в топе будут ДЦ алибабы и тенсента.

     

  • 1.3, S_Paul (??), 21:55, 09/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вложенные "if"'ы наверное можно map'ами сделать.

    map $is_http2:$is_rss:$is_bot $isdrop {
      default 0
      "0:0:0" 1;
    }

    server {
    ...
      if ($isdrop = 1) { return 418; }
    ...
    }

     
  • 1.5, Аноним (5), 08:42, 11/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Все нормальные скрейперы давно мимикрируют под браузер не только заголовком user-agent, но и протоколами. Продвинутые же скрейперы используют настоящий браузер. "Памяти всегда докупить можно (тм)". Сейчас у смузихлёбов на гитхабе тенденция - вообще всё делать через Microsoft Playwright (который через WebDriver работает с живой страницей), и не заморачиваться с реверсингом и кастомными скрейперами. Тьфу.
     
     
  • 2.6, Аноним (5), 08:44, 11/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще всё - это когда этот playwright вообще ни к селу ни к месту. Но у Американских Высокооплачиваемых Скрейперописателей рабочее время слишком дорого для этого, дешевле оперативки докупить, оперативка ведь один раз покупается, а скрейпер писать - каждый раз надо.
     
     
  • 3.8, Аноним (8), 17:50, 12/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Меня как-то с работы попёрли за то, что я долго писал скрейпер с обвязкой на C и JS и полной автоматизацией. Джун, который за меня переписал другой мой скрейпер на вебдрайвере, который до этого был написан через реверсинг приложения, по шапке не получил.

    Если скрейпер пишет корпорация, она не заслужила оптимизации. Она твой результат работы и так перепродаёт за 10x твоей стоимости.
    Если скрейпер пишешь ты или ты пишешь сервис для общего блага, только тогда и стоит потратить ценные годы своей жизни на реверсинг.

     
  • 2.13, Аноним (14), 09:06, 15/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Все нормальные скрейперы давно мимикрируют под браузер не только заголовком user-agent,
    > но и протоколами.

    Таки нет. Как ни странно они в массе своей писаны дешево, сердито и максимально наколенно. И поэтому есть чертова куча отличий между ними и норм клиентами.

    Вплоть до того как тут в советах сбоку написано - они даже куки не запоминают в массе своей. И если вы поставили куку - а оно ее не помнит - добро пожаловать в tarpit или что там у вас. Дебиан вон местами стал им выгружать какой-то рандомный AI-generated бред, во они друг друга потренируют :)

    > Продвинутые же скрейперы используют настоящий браузер. "Памяти всегда
    > докупить можно (тм)".

    Проблема в том что
    1) Его перфоманс полная днина а ресурсы не бесплатны.
    2) Конкурент в итоге индексит лучше и быстрее.
    3) Память нынче стала довольно дорогой.
    4) А вон там еще всякие an(ub)is'ы - вам счета proof of work как раз подкинут, да побольше.
    5) Кстати если скрейпер не будет режектить кукисы, можно будет влет оттрекать агрессивных клиентов по дикому числу корелированых запросов - и зобанить их айпишники или даже подсети, для ДЦ крупняка.

    > всё делать через Microsoft Playwright (который через WebDriver работает с живой
    > страницей), и не заморачиваться с реверсингом и кастомными скрейперами. Тьфу.

    Осталось найти желающих проплатить им ресурсов на это все. AI очень конкурентный рынок, там у кого модель лучше тот и в дамках. А для этого надо БЫСТОЛ и МНОГО индексить. С вашим вебдрайвером вы проиндексируете весь интернет - в актуальном виде - примерно никогда.

     

  • 1.7, Аноним (7), 16:06, 12/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    скоро боты поразмыслят и заявят о дискриминации.
     
     
  • 2.12, Аноним (-), 08:56, 15/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > скоро боты поразмыслят и заявят о дискриминации.

    При том для убедителности заявлений взяв БОЛЬШОЕ ружье. Где-то я это уже видел...

     

  • 1.9, Gremlin_Rage (ok), 22:49, 12/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Гуглбот фигачит данные в Гемини, а в РФ он не подсказывает
     
     
  • 2.10, Аноним (10), 10:01, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    AI Overviews в поиске и google.com/ai в РФ работают.
     

  • 1.11, Аноним (11), 08:55, 15/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Пример правил для http-сервера Caddy, возвращающих клиенту
    > ошибку при обращении по HTTP/1:

    Что, ваш caddy не потянул нагрузку и не умел в кеширование контента? Надо было nginx юзать :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру