URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 138252
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Отсеивание 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


Содержание

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