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:
protokeyandClaude Opus 5.5 committed 2026-10-13 17:23:01 +04:00
1 parent a399f7f8cc
commit 58100fa45d
9 files changed
+215 -29

No files matched your search

+7 -2
View File
@@ -5,10 +5,10 @@ WHEELS_DIR := wheels
REQUIREMENTS := requirements.txt
ver ?= latest
MAKECMDGOALS_TARGETS := install freeze wheels sync sync-offline clean help build release
MAKECMDGOALS_TARGETS := install freeze wheels sync sync-offline clean help build release fp-check
PKG := $(filter-out $(MAKECMDGOALS_TARGETS),$(MAKECMDGOALS))
.PHONY: install freeze wheels sync sync-offline clean help venv build release
.PHONY: install freeze wheels sync sync-offline clean help venv build release fp-check
help:
@echo "make install <pkg> [<pkg> ...] - установить пакет(ы) в $(VENV), обновить $(REQUIREMENTS), собрать wheel в $(WHEELS_DIR)/"
@@ -19,6 +19,7 @@ help:
@echo "make clean - удалить $(WHEELS_DIR)/"
@echo "make build [ver=latest] - собрать docker-образ robotex:<ver>"
@echo "make release ver=<ver> - собрать образ и пакет для деплоя в build/<ver>/ (compose, .env, образ .tar.gz)"
@echo "make fp-check [ver=latest] - собрать образ и проверить, что отпечатки профилей различаются и стабильны"
venv:
@test -d $(VENV) || python3 -m venv $(VENV)
@@ -53,6 +54,10 @@ build:
@echo "build an application"
docker build -t robotex:$(ver) .
fp-check: build
docker run --rm --shm-size=2g -v $(CURDIR)/tests:/app/tests:ro robotex:$(ver) \
xvfb-run -a --server-args="-screen 0 1920x1080x24" python /app/tests/fingerprint_check.py
RELEASE_DIR := build/$(ver)
ifneq ($(filter release,$(MAKECMDGOALS)),)