browser-auth-flow — скилл для Claude Code: что делает и как установить
Прогоняет вход на вашем сайте один раз и ищет утечки в редиректах, отсутствие CSRF-токена, слабые сессионные cookie и ошибки OAuth. Итог — findings.md с вердиктом.
npx skills add ruvnet/ruflo --skill browser-auth-flow -a claude-codeЧто делает browser-auth-flow
Скилл открывает страницу входа в браузере, проходит логин и записывает траекторию. Дальше по записанному прогону запускаются проверки csrf, redirect, cookie и oauth, набор задаётся через --probes. На выходе один findings.md: секция на каждую проверку, оценка серьёзности находки и вердикт pass, warn или fail.
Внутри MCP-инструменты браузера (browser_open, browser_fill, browser_eval, browser_get-url), вывод складывается в RVF-контейнер. Токены и PII остаются там же и не возвращаются в модель в открытом виде. Логин берётся из хранилища по --credentials <handle> или вводится вручную. Пароль в поле карты не вписывают.
Ограничение стоит знать до запуска: document.cookie показывает только не-HttpOnly имена и значения, поэтому Secure, SameSite и срок жизни читаются лишь из заголовков Set-Cookie до входа. Атрибуты после логина помечаются как not-assessed, вместо догадок скилл просит HAR или выгрузку из devtools. Он проверяет и не эксплуатирует. И чужой продакшн обязан отказаться проверять: разрешение на тест указывается в отчёте.
Какие задачи решает
- поймать утечку токена в редиректе на чужой домен
- убедиться, что POST формы входа несёт CSRF-токен
- найти сессионную cookie, которую видно из JavaScript
- сверить
stateиnonceв запросе к OAuth-провайдеру - снять baseline перед релизом и сравнить со следующим аудитом
Примеры запросов агенту
- Прогони `browser-auth-flow` по `<login-url>`, интересуют `csrf` и `redirect`.
- Проверь вход на стенде: `browser-auth-flow <login-url> --probes cookie,oauth`, логин возьми из `--credentials <handle>`.
- Сделай аудит авторизации новой формы и запиши `findings.md`.
Как установить browser-auth-flow
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a claude-code2Вручную: положить файлы
~/.claude/skills/browser-auth-flow/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/browser-auth-flow/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a codex2Вручную: положить файлы
.agents/skills/browser-auth-flow/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a cursor2Вручную: положить файлы
.cursor/skills/browser-auth-flow/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install ruvnet/ruflo browser-auth-flow2Вручную: положить файлы
.github/skills/browser-auth-flow/SKILL.md1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a gemini-cli2Командой платформы
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-browser/skills/browser-auth-flowВручную: положить файлы
.devin/skills/browser-auth-flow/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора104
Весь набор →Похожие
Вопросы о browser-auth-flow
Как установить browser-auth-flow в Claude Code?
Одной командой: npx skills add ruvnet/ruflo --skill browser-auth-flow -a claude-code. После неё файл скилла лежит по пути ~/.claude/skills/browser-auth-flow/SKILL.md.
Что делает browser-auth-flow?
Проходит логин на сайте и проверяет его на утечки в редиректах, отсутствие CSRF-токена, слабые сессионные cookie и ошибки OAuth. Всё складывается в findings.md с оценкой серьёзности по каждой находке.
Можно ли прогнать его по чужому сайту?
Нет. Работать он должен только по сайту, который вы держите сами, или по тому, на тест которого есть письменное разрешение. Это разрешение указывают в отчёте.
Исходный текст
SKILL.md · MIT
--- name: browser-auth-flow description: Probe a site's authentication flow for redirect leaks, missing CSRF, weak session cookies, and OAuth misconfiguration; produces an auth findings.md argument-hint: "<login-url> [--credentials <handle>] [--probes csrf,redirect,cookie,oauth]" allowed-tools: mcp__plugin_ruflo-core_ruflo__browser_open mcp__plugin_ruflo-core_ruflo__browser_close mcp__plugin_ruflo-core_ruflo__browser_fill mcp__plugin_ruflo-core_ruflo__browser_type mcp__plugin_ruflo-core_ruflo__browser_click mcp__plugin_ruflo-core_ruflo__browser_wait mcp__plugin_ruflo-core_ruflo__browser_eval mcp__plugin_ruflo-core_ruflo__browser_snapshot mcp__plugin_ruflo-core_ruflo__browser_get-url mcp__plugin_ruflo-core_ruflo__aidefence_has_pii mcp__plugin_ruflo-core_ruflo__aidefence_scan Bash Read Write --- # Browser Auth Flow Adversarial probe of a site's authentication. Drives the login flow once, records the trajectory, then runs a configurable set of probes against the captured artifacts and live page. Output is a structured `findings.md` inside the RVF container. ## When to use - Pre-deployment audit of a new auth flow. - Investigating a suspected token leak or redirect issue. - Establishing a baseline for ongoing regression checks. ## Steps 1. **Open a recorded session** via `browser-record`. 2. **Drive the auth flow** as in `browser-login` (credentials come from `--credentials <handle>` referencing `browser-cookies` if the run is a re-auth probe). 3. **Run probes**: - **`csrf`**: inspect the login POST in the trajectory; verify a same-origin token field is present and non-empty. - **`redirect`**: watch `browser_get-url` after each nav for cross-origin redirects with auth state in the URL or fragment. Flag any token-bearing URL that crosses an origin boundary. - **`cookie`**: `document.cookie` exposes only name=value of non-`HttpOnly` cookies; it cannot show `Secure`, `SameSite` or expiry. Via `browser_eval`, return only each visible cookie's name, value length and entropy estimate (never the values themselves), and flag any session-looking name that is visible at all, because a visible cookie is by definition not `HttpOnly`. For `Secure`/`HttpOnly`/`SameSite`/expiry, read the `Set-Cookie` response headers (for example `curl -sS -D - -o /dev/null <login-url>` for pre-auth cookies); post-login attributes are not observable with these tools, so mark them `not-assessed` and ask for a HAR or devtools export instead of guessing. - **`oauth`**: if the flow involves a third-party provider, capture the authorization request, verify `state` and `nonce` are present and high-entropy, verify `redirect_uri` matches the registered callback domain. 4. **Quarantine** any token / credential / PII captured during probing — it stays inside the RVF container's findings, never returns to the model unredacted (`aidefence_is_safe` gate from `browser-extract` applies if you read the findings back). 5. **Write `findings.md`** with one section per probe, severity rating per finding, and a `verdict` (pass / warn / fail). 6. **Index** the session in `browser-sessions` with `tag: auth-probe` so future audits compare against it. ## Caveats - **Authorization first.** Only probe a site you own or have written permission to test; state which in the report. The skill must refuse third-party production sites. - This skill probes; it does not exploit. Do not chain follow-up requests using a captured token. - Credentials must come from a vaulted handle or interactive entry. Never hardcode them in the field map. - Some probes require multiple page loads. Trajectory step count for an auth probe typically lands at 15–40 steps; budget accordingly. - The output is structured for human review. Do not auto-act on findings without surfacing them to the user first.
© ruvnet · MIT · ruvnet/ruflo