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

48 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ограничение доступа по User-Agent (на примере GPTBot)
GPTBot это поисковой бот компании OpenAI (GPTchat, Dall-E и т.п.), который сканирует веб-страницы
с целью обучения моделей машинного обучения и использует инфраструктуру Microsoft.
Есть миф (а может и правда), что сбор информации GPTBot с сайта может облегчить создание фейков со
стороны злоумышленников, и потому сканирование GPTBot-у надо ограничить.
## Ограничения доступа файл robots.txt:
Добавить в файл robots.txt следующие строки:
```robots.txt
User-agent: GPTBot
Disallow: /
```
## Ограничение доступа на веб-сервере Apache:
Пример настройки для веб-сервера Apache через файлы конфигурации .htaccess:
```apache configuration
<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 через файлы конфигурации:
```nginx configuration
server {
# ... другие настройки сервера ...
if ($http_user_agent ~* "GPTBot") {
return 403;
}
# ... другие настройки сервера ...
}
```
Этот конфигурационный файл проверяет, содержится ли идентификатор "**GPTBot**" в заголовке User-Agent
(без учета регистра), и если это так, возвращает статус `403 (Forbidden)`, что означает запрет доступа.