autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Habr / dev.to / vc.ru — стены OAuth и регистрации (2026-10-03)
|
||||
|
||||
Цель сессии: постить AI-лонгриды с рекламой TG-канала на внешних площадках. Итог: все три упёрлись в стены; зафиксировано точно где и почему, чтобы не повторять.
|
||||
|
||||
## Habr (habr.com / account.habr.com)
|
||||
|
||||
**Регистрация закрыта Yandex SmartCaptcha:**
|
||||
- Форма: POST `https://account.habr.com/ru/register/start/<token>` (action-токен из GET habr.com/ru/auth/register/), поля email/nickname/password1/password2/agree=on/cplcy=on.
|
||||
- Ответ: JSON `{"success":false,"errors":{"smart-token":"Необходимо пройти капчу"}}`.
|
||||
- Sitekey: `data-sitekey="ysc1_..."`, `data-captcha="yandex"`.
|
||||
- YesCaptcha (баланс 4394, ключ в `Desktop/_PROJECTS/авторег проект/.env` YESCAPTCHA_KEY): **НЕ поддерживает** Yandex SmartCaptcha — AntiYandexTaskProxyless / AntiYandexTask / YandexSmartCaptchaTask / AntiYandexSmartCaptchaTask все → ERROR_TASK_NOT_SUPPORTED.
|
||||
- Camoufox headless (venv BrowserMCP): виджет есть (`data-sitekey` детектится), но submit-кнопка `disabled` и `input[name=smart-token]` пуст даже через 20с — невидимый чек не проходится headless. Venv SearchMCP для camoufox сломан (Connection closed while reading from the driver) — использовать `C:/Users/User/tools/BrowserMCP/.venv/Scripts/python.exe`.
|
||||
|
||||
**OAuth через GitHub — технически проходит, но бесполезен для НОВЫХ аккаунтов:**
|
||||
- Флоу: GET habr.com/ru/auth/login/ → 302 account.habr.com/ru/ident/<tok> → из ident-HTML взять hidden `token` из блока формы `extidp/github/prompt` → POST этот endpoint с `token=<...>` + заголовок X-Requested-With → JSON `{"success":true,"rurl":"https://github.com/login/oauth/authorize?client_id=8a8c881ecaaa3b5d9ca4&state=..."}`.
|
||||
- GitHub login + 2FA (app_otp) + authorize POST проходят (см. pitfall про парсинг hidden-полей ниже).
|
||||
- Callback: `https://account.habr.com/extidp/github/check?code=...` → **403 «Внешняя учётная запись не привязана ни к одному Аккаунту»**. OAuth-логин работает ТОЛЬКО для аккаунтов, где GitHub уже привязан. Новую учётку так не создать.
|
||||
- Проверка логина: `/ru/settings/profile/` → 401 если не залогинен. Анонимные cookies (habrsession_id и др.) ставятся всегда — «cookies есть» ≠ «залогинен», проверять именно authenticated endpoint.
|
||||
|
||||
**Технические детали флоу (если когда-нибудь понадобится):**
|
||||
- Скрипт: `tmp/habr_gh_login.py` (cookie-jar, pyotp, state в tmp/habr_sessions*.json).
|
||||
- После 2FA GitHub отдаёт страницу authorize; POST /login/oauth/authorize должен содержать ВСЕ hidden-поля формы (client_id, redirect_uri, redirect_uri_specified, scope, state, authenticity_token) + authorize=1. Парсить итерацией по `<input ... type="hidden" ...>` тегам с отдельными regex на name/value — фиксированный порядок `name=".." value=".."` в одном regex теряет поля (атрибуты идут в разном порядке) → POST отдаёт 404.
|
||||
- Callback приходит через `<meta http-equiv="refresh" content="0;url=...">` — urllib за ним НЕ следует, извлекать regex и идти вручную.
|
||||
|
||||
## vc.ru
|
||||
|
||||
- Auth = SPA: `POST https://api.vc.ru/v3.4/auth/email/code {email}` → challengeId → `POST .../email/code/confirm {challengeId, code}` (эндпоинты из бандла `/assets/index-*.js`).
|
||||
- **api.vc.ru (front-proxy.vc.ru, [REDACTED-IP], Yandex Cloud) полностью недоступен с домашнего IP** — connection timeout на GET и POST, ping не отвечает. При этом корень vc.ru отдаёт 200. Через vc.ru/api/v3.4/... — 404 (роуты только на api-поддомене). Без residential-прокси РФ-гео флоу не проверить.
|
||||
|
||||
## dev.to (Forem)
|
||||
|
||||
- OAuth: GET dev.to/users/auth/github → GitHub login/2FA/authorize — всё проходит, meta-refresh отдаёт `https://dev.to/users/auth/github?code=...&iss=...`.
|
||||
- GET этого callback → редиректит обратно на github authorize, `api/users/me` = 401, cookie `_Devto_Forem_Session` есть но неаутентифицированный. Похоже на state/session mismatch при обмене code. **Сжигает GH-аккаунты пула впустую** — после 2-3 неудач стопать, не масштабировать.
|
||||
- Скрипт-заготовка: `tmp/devto_gh_login.py`.
|
||||
|
||||
## linux.do
|
||||
|
||||
- Discourse, но Cloudflare: `session/csrf.json` → 403 «Just a moment» с нашего IP. Токен в `tmp/_onemini_session.json` не проверить без обхода CF.
|
||||
|
||||
## Вывод для контент-дистрибуции
|
||||
|
||||
Внешние веб-форумы закрыты (капча/гео/привязка). Рабочие каналы: Telegraph (вечные URL, без аккаунта) + собственные TG-площадки: канал @AlStack, Vibe Club TG-форум (PeerChannel 4415843844, сессия tmp/R3fIex — get_entity по int-ид НЕ работает, нужен PeerChannel), Goth Intel Feed (3927191915). Конвейер: sm-content-pipeline → references/standalone-content-agent-telegraph.md (если skill user-owned — скрипт tmp/content_agent.py самодостаточен).
|
||||
|
||||
## Расходники
|
||||
|
||||
- GH-пул 172 акка (email/password/totp/login): `tmp/hoplite-gateway/data/gh_accounts.json`.
|
||||
- 2captcha ключ в `tmp/vibe_autoreg/api456_api.py` живой, баланс ~$1.03 — на Turnstile хватит, на Yandex SmartCaptcha не решает никто.
|
||||
- Voidash для почты: POST api.voidash.com/api/v1/inboxes {domain: voidash.bond} → address + session_key; домены govno.eu.cc/musor.eu.cc/pomoi.eu.cc тоже живые.
|
||||
Reference in New Issue
Block a user