The OpenNET Project / Index page

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



"Раздел полезных советов: Борьба с web-ботами через запрет HTTP/1.1"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от auto_tips (??), 09-Мрт-26, 19:01 
Как один из вариантов борьбы с AI-скрапперами, создающими огромную паразитную нагрузку на сервер, [[https://sheep.horse/2026/3/blocking_http1.1_-_some_results.html предложено]] ограничить доступ к сайту по протоколу 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;
            }
         }
      }
   }

URL: https://sheep.horse/2026/3/blocking_http1.1_-_some_results.html
Обсуждается: https://www.opennet.ru/tips/info/3295.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Борьба с web-ботами через запрет HTTP/1.1"  +2 +/
Сообщение от Аноним (1), 09-Мрт-26, 19:01 
Так себе идея, не учитывающая много исключений.
Мы сделали чуть сложнее - проанализировали набор заголовков, используемых провайдеров, подсети и собрали набор маркеров. При поступлении запроса он (с помощью кода на lua в nginx) анализируется, при совпадении любого из маркеров ему начисляются очки. Например если Firefox шлет Chrome-специфичный заголовок, используется китайская локаль (90% скрейперов нападающих на наш хостинг имеют китайскую локаль), поведение не соответствует версии браузера, меченая ASN и т.д. Набрал больше первого порога - страницу отдаем, но с минимальной скоростью (в планах челлендж, но это потом). Набрал выше второго порога - давай до свидания! (с)
В среднем 27-35% трафика летит в 444, еще 8-10 отдается с задержкой. И с момента внедрения нагрузка на ноды бэкендов ни разу не превысила штатную.
Ответить | Правка | Наверх | Cообщить модератору

2. "Борьба с web-ботами через запрет HTTP/1.1"  +1 +/
Сообщение от Гость (??), 09-Мрт-26, 20:58 
С ботами из сети Tencent как? оттуда валится столько запросов и входящего трафика, что лучше из банить до http сервера.
Ответить | Правка | Наверх | Cообщить модератору

4. "Борьба с web-ботами через запрет HTTP/1.1"  +2 +/
Сообщение от Аноним (1), 10-Мрт-26, 06:52 
С ними проще - можно банить прям подсетями. Брать из BGP списки подсетей принадлежащие AS Tencent, Alibaba, Huawei cloud и пр. и закидывать пачками в ipset/netfilter. Простенький скрипт в кроне раз в неделю
Ответить | Правка | Наверх | Cообщить модератору

14. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (14), 15-Мрт-26, 09:09 
> С ботами из сети Tencent как? оттуда валится столько запросов и входящего
> трафика, что лучше из банить до http сервера.

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

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

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

3. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от S_Paulemail (??), 09-Мрт-26, 21:55 
Вложенные "if"'ы наверное можно map'ами сделать.

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

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

Ответить | Правка | Наверх | Cообщить модератору

5. "Борьба с web-ботами через запрет HTTP/1.1"  +1 +/
Сообщение от Аноним (5), 11-Мрт-26, 08:42 
Все нормальные скрейперы давно мимикрируют под браузер не только заголовком user-agent, но и протоколами. Продвинутые же скрейперы используют настоящий браузер. "Памяти всегда докупить можно (тм)". Сейчас у смузихлёбов на гитхабе тенденция - вообще всё делать через Microsoft Playwright (который через WebDriver работает с живой страницей), и не заморачиваться с реверсингом и кастомными скрейперами. Тьфу.
Ответить | Правка | Наверх | Cообщить модератору

6. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (5), 11-Мрт-26, 08:44 
Вообще всё - это когда этот playwright вообще ни к селу ни к месту. Но у Американских Высокооплачиваемых Скрейперописателей рабочее время слишком дорого для этого, дешевле оперативки докупить, оперативка ведь один раз покупается, а скрейпер писать - каждый раз надо.
Ответить | Правка | Наверх | Cообщить модератору

8. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (8), 12-Мрт-26, 17:50 
Меня как-то с работы попёрли за то, что я долго писал скрейпер с обвязкой на C и JS и полной автоматизацией. Джун, который за меня переписал другой мой скрейпер на вебдрайвере, который до этого был написан через реверсинг приложения, по шапке не получил.

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

Ответить | Правка | Наверх | Cообщить модератору

13. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (14), 15-Мрт-26, 09:06 
> Все нормальные скрейперы давно мимикрируют под браузер не только заголовком user-agent,
> но и протоколами.

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

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

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

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

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

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

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

7. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (7), 12-Мрт-26, 16:06 
скоро боты поразмыслят и заявят о дискриминации.
Ответить | Правка | Наверх | Cообщить модератору

12. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (-), 15-Мрт-26, 08:56 
> скоро боты поразмыслят и заявят о дискриминации.

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

Ответить | Правка | Наверх | Cообщить модератору

9. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Gremlin_Rage (ok), 12-Мрт-26, 22:49 
Гуглбот фигачит данные в Гемини, а в РФ он не подсказывает
Ответить | Правка | Наверх | Cообщить модератору

10. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (10), 13-Мрт-26, 10:01 
AI Overviews в поиске и google.com/ai в РФ работают.
Ответить | Правка | Наверх | Cообщить модератору

11. "Борьба с web-ботами через запрет HTTP/1.1"  +/
Сообщение от Аноним (11), 15-Мрт-26, 08:55 
> Пример правил для http-сервера Caddy, возвращающих клиенту
> ошибку при обращении по HTTP/1:

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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