Перейти к содержимому
Экосистема AI Vibe

Разборы

Пароль в промпт, cookies вручную или живая сессия: как headless-агенту попасть в приватный дашборд

Редакция 8 сентября 2026 г.

Пароль в промпт, cookies вручную или живая сессия: как headless-агенту попасть в приватный дашборд

Три паттерна доступа агента к закрытому SaaS: учётные данные в контексте модели, ручной перенос cookies и изолированная сессия из обычного Chrome. На одной рабочей станции с WSL2 третий путь держит пароли вне LLM. Человек остаётся в живом браузере, где проходят OAuth, passkeys и 2FA. Агент читает дашборд в изолированном headless-рантайме.

Зачем агенту «живой» логин, а не ключ из документации

Headless-рантайм открывает страницы, но не проходит то, что человек делает каждый день: Google OAuth, корпоративный SSO, passkeys, двухфакторку. Агенту при этом нужны приватные дашборды, не публичные API: биллинг AWS, внутренний портал, квоты SaaS.

Пароли и API-токены в промптах или .env дают постоянный неограниченный доступ. Ручное копирование cookies быстро устаревает. «Сырой» CDP поверх основного браузера тащит весь профиль пользователя. Session Bridge разводит роли: человек логинится в Chrome, Edge или Comet. Агент получает изолированный headless-рантайм с сессией целевого origin.

Как устроен Lightpanda Session Bridge

Связка open-source под MIT: Chrome-расширение Manifest V3, локальный loopback-relay и headless-браузер Lightpanda (Zig + V8), заточенный под AI-автоматизацию. Поток данных: живой браузер → расширение (cookies только активного origin) → POST на 127.0.0.1:8765 → relay → WebSocket CDP → Lightpanda → Python SDK агента.

Расширение «Quota Glass»

Разрешения MV3: activeTab, cookies, storage. По клику Sync Tab извлекаются cookies только для активного origin, нормализуются и упаковываются в transfer envelope. При первом запуске срабатывает auto-pairing: POST /v1/bootstrap к локальному relay, shared cryptographic token сохраняется в isolated storage без ручного копирования.

Hardened loopback-relay

relay/server.py слушает только 127.0.0.1:8765. Relay проверяет origin, нормализует cookie (__Host-, __Secure-, RFC 6265bis) и конвертирует sameSite, например laxLax, под требования Lightpanda CDP. Иначе прилетает -31998 InvalidEnumTag. Дальше cookies уходят в Lightpanda по CDP WebSocket. Запросы к relay идут с X-Bridge-Token и CORS-check.

Headless Lightpanda и агентский SDK

Lightpanda поднимается в WSL2 на 127.0.0.1:9222, изолированно от Windows-хоста. Агент читает данные через bundled Python SDK lightpanda_client.py. Подключение к CDP, attach/create страницы с синхронизированной сессией, evaluate() внутри аутентифицированного контекста (профиль пользователя, квоты, CSRF-токен с dashboard).

Установка: git clone https://github.com/Raknaos/lightpanda-session-bridge.git, pip install -r requirements.txt. Скрипты для Windows: ./scripts/start-lightpanda.ps1 (CDP на 127.0.0.1:9222) и ./scripts/start-relay.ps1 (relay на 127.0.0.1:8765). Расширение загружается Load unpacked из папки extension/.

Пароли и cookies не уходят в LLM

Relay не логирует имена и значения cookies. LLM не видит credentials. В рантайм попадает только результат evaluate() в уже аутентифицированном контексте.

Мера Что даёт агентному стеку
Zero logging Cookies не пишутся в stdout, на диск и в history
Loopback only Жёсткая привязка к 127.0.0.1
IdP blacklist Отклоняются transfers на accounts.google.com, login.microsoftonline.com, appleid.apple.com, github.com, auth0.com
Anti-SSRF Целевой домен резолвится в публичный IPv4/IPv6, отсекаются localhost, 127.0.0.0/8, private subnets, nip.io, DNS cache 60 секунд
Тесты 9 automated security test suites (private IP, CDP payload, token enforcement)

OAuth, passkeys и обычный логин идут по одному паттерну: человек проходит полный login-flow в обычном браузере. Расширение синхронизирует cookies целевого origin после Sync Session. Headless не имитирует биометрию и authenticator app.

Сессия короче пароля по сроку жизни: cookie отзывается при logout в основном браузере и ограничена одним origin.

Ограничения на локальной dev-машине

Три жёстких ограничения стека:

  1. Человек в цикле: Sync вручную раз на сессию. Паттерн для контролируемых сценариев, не для безголовых серверных ферм с нуля.
  2. Только локальная машина: relay отказывает remote. Браузер и скрипт агента на одной рабочей станции.
  3. Zig / WSL2: Lightpanda «most smoothly» на Linux/WSL2. PowerShell-скрипты автоматизируют связку Windows + WSL2.

Lightpanda называют «ultra-fast» и «blindingly fast» с «tiny memory footprints compared to full Chromium». Цифр latency и RAM в сравнении с Playwright, Puppeteer или полным Chromium нет.

GitHub Releases: v0.3.4 (zip). Landing: raknaos.github.io/lightpanda-session-bridge.

Порядок запуска на соло-станции

  1. Поднять relay (127.0.0.1:8765) и Lightpanda CDP (127.0.0.1:9222 в WSL2).
  2. Загрузить расширение unpacked, дождаться auto-pair при открытом popup.
  3. Залогиниться в целевой SaaS в обычном браузере (OAuth, passkey, 2FA) и нажать Sync Tab для нужного origin.
  4. В lightpanda_client.py подключиться к CDP и проверить evaluate() на странице, которая без сессии отдала бы 401.

Живой логин в Chrome, headless-чтение dashboard. Пароль не попадает в system prompt и traces. Security review продакшена это не заменяет. На одной dev-машине с WSL2 паттерн собран целиком.

Источники