The OpenNET Project / Index page

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

Отсеивание AI-ботов на web-сервере через Cookie
Для отсеивания ботов, агрессивно индексирующих контент, игнорируя правила из
robots.txt, можно воспользоваться тем, что многие боты запрашивают заранее
предопределённый набор страниц и не передают Cookie, выставленные в ответ на
прошлые запросы.

Идея в том, чтобы при поступлении запроса проверять наличие определённой
Cookie и если она отсутствует вместо запрошенного контента отдавать
HTML-заглушку, возвращающую JavaScript-код для выставления Cookie и
перенаправления пользователя на ту же страницу.  При отправке запроса из
браузера при первом входе запрос незаметно для пользователя будет проброшен
через код установки Cookie. В промежуточном ответе используем код
ошибки HTTP 418, информирующий о нежелании обрабатывать автоматизированные запросы.

Предложенный метод не отсеивает всех ботов, но проще в настройке и менее
назойливый для посетителей, чем применение системы защиты от ботов 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>';
       }
       ....
   }
 
03.11.2025 , Источник: https://fxgn.dev/blog/anubis/...
Ключи: bot, block, cookie, javascript, caddy, nginx / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Ограничение доступа и ресурсов, безопасность

Обсуждение [ RSS ]
  • 1, повар (?), 16:17, 03/11/2025 [ответить]  
  • +/
    Ну вот, теперь пейсaтeли таких ботов знают как это обойти.
    Думаю лучше таким ботам намеренно "скармливать" всякую чушь и делать это всем владельцам сайтов.
    Может тогда удастся принудить их к соблюдению правил.
    Хотя это наверно пустая надежда, когда у людей нет ни совести, ни чести...
     

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




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

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