AI-агенти · сайти · безпека · 18.10.2026

Чому AI-агент не відкриває сайт: 403, robots.txt і безпечний fallback

Браузерний агент може бачити сторінку вчора й отримати CAPTCHA або 403 сьогодні. Це не завжди «поломка ШІ»: сайт міг заборонити агентів, WAF сплутав їх із ботами, сесія втратила дозвіл або дія потребує людини. Нижче — діагностика без обходу захисту та готовий план для розробника.

Розробниця бачить заблокований браузерний маршрут і перемикається на перевірений серверний шлях
Авторська AI-ілюстрація Вайб-Кодинг: заблокований маршрут не треба ламати — потрібен контрольований fallback

AI-агент і звичайний браузер — не одне й те саме

17 жовтня The Verge зібрала свідчення про блокування браузерних агентів на великих сервісах: від онлайн-магазинів до авіакомпаній і фінансових сайтів. Частина компаній прямо не дозволяє агентам виконувати дії, частина погоджується лише через партнерства або ліцензований доступ, а десь автоматизований трафік зупиняє звичайний антибот-захист. Це журналістська добірка, а не доказ того, що кожен згаданий сервіс блокує всіх агентів у всіх країнах.

Офіційна довідка OpenAI теж попереджає: сайт може обмежити хмарний браузер, навіть якщо та сама сторінка відкривається на вашому пристрої. Власник сайту вирішує, кого впускати. Дозвіл від користувача на відкриття домену не скасовує правила сайту, а дозвіл на сайт не є дозволом автоматично підтвердити оплату чи іншу незворотну дію.

Головна ідея: «я як користувач маю доступ» не завжди означає «мій агент має право автоматизувати цей доступ». Потрібно врахувати правила сервісу, технічну ідентифікацію агента, ризик дії та окремі дозволи.

Що насправді означає 401, 403, 429 або CAPTCHA

СигналІмовірне поясненняБезпечна дія
401 UnauthorizedНемає чинної сесії або потрібна автентифікація.Передати керування людині для входу; не просити пароль у чаті.
403 ForbiddenСервер зрозумів запит, але політика або права його відхилили.Не повторювати безкінечно. Перевірити правила, офіційний API чи allowlist.
429 Too Many RequestsПеревищено частоту або квоту.Зменшити темп, застосувати backoff, кеш і задокументований ліміт.
CAPTCHA / challengeWAF або антибот-система не довіряє клієнту.Пауза й ручний takeover. Не автоматизувати розв’язання CAPTCHA.
robots.txt: DisallowВласник просить сумлінних роботів не обходити певний шлях.Поважати правило; воно не є автентифікацією чи захистом приватних даних.
Сторінка зміниласяСелектор, форма або бізнес-процес більше не збігається з очікуванням.Зупинити дію, показати користувачу новий стан і перевірити сценарій заново.

robots.txt — добровільний протокол. Він допомагає коректним краулерам, але не захищає секретні URL: зловмисний клієнт може його ігнорувати. Реальне обмеження роблять автентифікація, права доступу, WAF, rate limits та серверна перевірка запиту.

Не робіть так: не маскуйте агента під людину, не підміняйте User-Agent, не обертайте IP, не обходьте CAPTCHA й не продовжуйте після явної заборони. Це створює юридичний, безпековий та продуктовий ризик і не перетворює нестабільний сценарій на надійну функцію.

Архітектура AI-функції, яка не ламається від одного 403

  1. Спочатку шукайте офіційний конектор або API. Він має стабільніші контракти, явні дозволи й машинні коди помилок. Браузер залишайте для підтримуваних UI-сценаріїв.
  2. Розділіть читання і наслідки. Пошук ціни можна автоматизувати обережніше, ніж оплату, скасування бронювання чи зміну банківських реквізитів.
  3. Додайте fail-closed. Якщо агент не бачить остаточну суму, домен або підтвердження, він зупиняється, а не «здогадується».
  4. Збережіть ручний шлях. Користувач повинен отримати пряме посилання, коротке пояснення блокера та можливість продовжити самостійно.
  5. Проєктуйте повторний запуск. Кроки мають бути ідемпотентними: повтор після збою не створює друге замовлення, лист або списання.
  6. Логуйте стан, не секрети. Достатньо домену, категорії помилки, етапу й часу. Паролі, токени, платіжні дані та вміст приватної сторінки не мають потрапляти в аналітику.

Корисний формат відповіді агента: «Сайт відхилив автоматизований доступ на етапі перевірки наявності. Я не обходив захист. Ось пряме посилання; перевірте ціну й натисніть остаточне підтвердження самостійно». Це гірше за магічний one-click лише в демо, але краще для реальної довіри.

Як власнику сайту не плутати корисного агента зі скрапером

Cloudflare у документації розділяє щонайменше пошукових краулерів, навчальних ботів і агентів, які діють у реальному часі від імені людини. Одна глобальна кнопка «блокувати все AI» проста, але може відрізати індексацію, цитування або реального клієнта разом із небажаним збором даних.

Публічний контент

Визначте окремо пошук, AI-цитування, навчання моделей і realtime-агентів. Зафіксуйте правила у доступній політиці.

Акаунти й персональні дані

Потрібні автентифікація, найменші права, короткі сесії, аудит і додаткове підтвердження ризикових дій.

Комерційні дії

Показуйте повну ціну до фінального кроку, вимагайте явного підтвердження й захищайте повтор від дублювання.

Довірений агент

Перевіряйте криптографічну сигнатуру або офіційний механізм провайдера, а не лише User-Agent чи IP.

OpenAI описує Web Bot Auth: запити хмарного браузера містять підписані заголовки, які власник сайту може перевірити за публічним ключем. Це допомагає підтвердити походження запиту, але не означає автоматичного дозволу на будь-яку дію. Авторизація користувача й правила конкретного endpoint все одно потрібні.

Локальний чекер: чи переживе ваша функція блокування сайту

Позначте тільки те, що вже реалізовано. Відповіді рахуються в цьому браузері й не надсилаються на сервер; в аналітику піде лише діапазон результату, без назви сайту.

Перевірка готовності

Результат з’явиться тут.

Приклад: агент шукає й бронює послугу

Надійний сценарій має три різні рівні. Перший — агент збирає доступні варіанти й джерела. Другий — користувач обирає пропозицію та перевіряє умови. Третій — фінальне бронювання або оплата відбуваються лише після явного підтвердження.

Контракт для реалізаціїМета: знайти три доступні варіанти на [дата/місто].

Дозволено:
- читати публічні сторінки й офіційні API;
- сформувати порівняння з прямими посиланнями;
- підготувати форму до фінального кроку.

Заборонено без нового підтвердження:
- оплачувати, бронювати або погоджувати умови;
- обходити CAPTCHA, 403, rate limit чи політику сайту;
- переносити пароль, токен або платіжні дані у чат чи логи.

Якщо сайт блокує агента:
1. зупини автоматизацію;
2. назви етап і тип блокера;
3. дай пряме посилання;
4. запропонуй офіційний API, інший дозволений сервіс або ручне продовження.

Для функцій із власними інструментами продовжуйте з матеріалом про безпечний function calling. Якщо агент працює з кодом — використайте чекліст перевірки змін. Основи захисту секретів зібрані у гайді про API-ключі у вайб-кодингу.

Першоджерела й журналістський сигнал

Ваш агент упирається у 403 або CAPTCHA?

Принесіть у Telegram безпечний мінімум: код статусу, етап сценарію й очікуваний результат. Не публікуйте cookie, токени, приватні URL або персональні дані.

Розібрати блокер у Telegram

Один практичний сценарій ШІ на тиждень: перегляньте приклад листа й підпишіться з підтвердженням адреси.

Telegram-чат ↗