feature: UA и отпечаток задаются профилю один раз, cookies запроса заменяют профильные
- user_agent записывается в профиль при первом запросе сессии, дальше игнорируется (#87) - переданные cookies заменяют cookies профиля (clear_cookies перед add_cookies) (#88) - без user_agent профилю генерируется отпечаток browserforge (Linux Chrome): UA с версией установленного Chrome, экран и devicePixelRatio; только нативная эмуляция, без JS (#89) - make fp-check: проверка, что отпечаток применяется и стабилен, и доля различий профилей Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a399f7f8cc
commit
58100fa45d
9 files changed
+215
-29
No files matched your search
@@ -38,12 +38,12 @@ Client → Caddy (TLS, on the host) → FastAPI POST /v1/solve → browser slot
|
||||
reCAPTCHA, hCaptcha) are solved via the client's 2captcha key.
|
||||
- **Proxies**: not managed by the service — the client may supply their own proxy per request. Browser locale and
|
||||
timezone are derived from the proxy's exit IP.
|
||||
- **Sessions**: `session_id` cookie → persistent Chrome profile (cookies, local storage, user agent) on disk.
|
||||
- **Sessions**: `session_id` cookie → persistent Chrome profile on disk. User agent and fingerprint (screen, DPR) are
|
||||
fixed on the first request of a session; cookies passed in a request replace the profile's cookies.
|
||||
- **Logging**: stdout, level from `LOG_LEVEL`; client secrets (proxy credentials, 2captcha key, `fill` values,
|
||||
cookie values) are masked.
|
||||
- **Deployment**: single Docker container; TLS is terminated by Caddy on the host — see
|
||||
[docs/Deployment.md](docs/Deployment.md).
|
||||
- **Canvas fingerprint** is generated anew for every session by design.
|
||||
|
||||
### Project layout
|
||||
|
||||
@@ -51,6 +51,7 @@ Client → Caddy (TLS, on the host) → FastAPI POST /v1/solve → browser slot
|
||||
src/
|
||||
main.py # FastAPI app: /v1/solve, /health, slots, sessions, response
|
||||
api/
|
||||
profile.py # per-profile user agent and generated fingerprint
|
||||
schemas.py # SolveRequest / ActionRequest / SolveResponse + validation
|
||||
actions.py # action registry and execution
|
||||
geoip.py # proxy → locale / timezone
|
||||
@@ -67,6 +68,7 @@ src/
|
||||
docs/ # API, deployment, anti-bot notes
|
||||
tests/
|
||||
loadtest.py # concurrent load test + docker stats
|
||||
fingerprint_check.py # profile fingerprints are applied and stable (make fp-check)
|
||||
test_main.http # manual requests (JetBrains HTTP client)
|
||||
wheels/ # wheels for offline install on Ubuntu Noble
|
||||
Dockerfile
|
||||
|
||||
Reference in new issue
Block a user