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

This commit is contained in:
Sergei Erjemin 2023-12-19 16:16:56 +03:00
parent caaf315d9d
commit 17ebb1d483
2 changed files with 50 additions and 0 deletions

View File

@ -13,3 +13,6 @@
## Raspberry Pi / Orange Pi ## Raspberry Pi / Orange Pi
* [Установка Docker и Docker Compose](raspberry-pi/install-docker-compose.md) * [Установка Docker и Docker Compose](raspberry-pi/install-docker-compose.md)
* [Резервное копирование и восстановление](raspberry-pi/backup-restore.md) * [Резервное копирование и восстановление](raspberry-pi/backup-restore.md)
## Nginx / Apache
* [Ограничение доступа по User-Agent (на примере GPTBot)](nginx/nginx-ban-user-agent.md)

View File

@ -0,0 +1,47 @@
# Ограничение доступа по 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)`, что означает запрет доступа.