The OpenNET Project / Index page

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



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

"Раздел полезных советов: Отсеивание AI-ботов на web-сервере через Cookie"  +/
Сообщение от auto_tips (?), 03-Ноя-25, 16:17 
Для отсеивания ботов, агрессивно [[https://www.opennet.dev/opennews/art.shtml?num=62925 индексирующих]] контент, игнорируя правила из robots.txt, можно воспользоваться тем, что многие боты запрашивают заранее предопределённый набор страниц и не передают Cookie, выставленные в ответ на прошлые запросы.

Идея в том, чтобы при поступлении запроса проверять наличие определённой  Cookie и если она отсутствует вместо запрошенного контента отдавать HTML-заглушку, возвращающую JavaScript-код для выставления Cookie и перенаправления пользователя на ту же страницу.  При отправке запроса из браузера при первом входе запрос незаметно для пользователя будет проброшен через код установки Cookie. В промежуточном ответе используем код
ошибки HTTP [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/... 418]], информирующий о нежелании обрабатывать автоматизированные запросы.

Предложенный метод не отсеивает всех ботов, но проще в настройке и менее назойливый для посетителей, чем применение системы защиты от ботов [[https://github.com/TecharoHQ/anubis Anubis]], допускающей вход только после подбора на языке JavaScript значения, хэш SHA-256 от которого в сочетании с выданной сервером строкой содержит определённое число лидирующих нулей (данная задача требует ресурсов CPU для решения, но не требует ресурсов для проверки).

Пример для http-сервера Caddy:

   example.com {
      # Проверка всех запросов на наличие Cookie "verified"
      @unverified not header Cookie *verified*

      # JavaScript-код, выдаваемый для запросов без Cookie "verified"
      handle @unverified {
          header Content-Type text/html
          respond <<EOF
            <script>
            setTimeout(() => {
               document.cookie = 'verified=1; Path=/;';
               window.location.reload();
            }, 1000);
            </script>
          EOF 418
      }

      # Нормальное проксирование остальные запросов
      reverse_proxy localhost:3001
  }

Пример для nginx:

    location / {
       if ($cookie_verified = "") {
           add_header Content-Type text/html;
           return 418 '<script>setTimeout(() => {document.cookie = 'verified=1; Path=/;';window.location.reload();}, 1000);</script>';
       }
       ....
   }


URL: https://fxgn.dev/blog/anubis/
Обсуждается: http://www.opennet.dev/tips/info/3287.shtml

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

Оглавление

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


1. "Отсеивание AI-ботов на web-сервере через Cookie"  +/
Сообщение от повар (?), 03-Ноя-25, 16:17 
Ну вот, теперь пейсaтeли таких ботов знают как это обойти.
Думаю лучше таким ботам намеренно "скармливать" всякую чушь и делать это всем владельцам сайтов.
Может тогда удастся принудить их к соблюдению правил.
Хотя это наверно пустая надежда, когда у людей нет ни совести, ни чести...
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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