doc_memo/nginx/nginx-ban-user-agent.md

2.3 KiB
Raw Permalink Blame History

Ограничение доступа по User-Agent (на примере GPTBot)

GPTBot это поисковой бот компании OpenAI (GPTchat, Dall-E и т.п.), который сканирует веб-страницы с целью обучения моделей машинного обучения и использует инфраструктуру Microsoft.

Есть миф (а может и правда), что сбор информации GPTBot с сайта может облегчить создание фейков со стороны злоумышленников, и потому сканирование GPTBot-у надо ограничить.

Ограничения доступа файл robots.txt:

Добавить в файл robots.txt следующие строки:

User-agent: GPTBot
Disallow: /

Ограничение доступа на веб-сервере Apache:

Пример настройки для веб-сервера Apache через файлы конфигурации .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} ^GPTBot [NC]
  RewriteRule ^ - [F,L]
</IfModule>

Этот код проверяет, начинается ли User-Agent с "GPTBot" (без учета регистра), и если это так, то правило RewriteRule отправляет запросу статус 403 (Forbidden), что означает запрет доступа (F) и прекращает дальнейшее выполнение правил (L).

Ограничение доступа на веб-сервере Nginx:

Пример настройки для веб-сервера Nginx через файлы конфигурации:

server {
    # ... другие настройки сервера ...

    if ($http_user_agent ~* "GPTBot") {
        return 403;
    }
    # ... другие настройки сервера ...
}

Этот конфигурационный файл проверяет, содержится ли идентификатор "GPTBot" в заголовке User-Agent (без учета регистра), и если это так, возвращает статус 403 (Forbidden), что означает запрет доступа.