Files
OmniRoute/docs/i18n/lt/docs/security/STEALTH_GUIDE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

25 KiB
Raw Blame History

Stealth Guide (Lietuvių)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Tiesos šaltinis: open-sse/utils/tlsClient.ts, open-sse/services/{tlsClientBase,claudeTlsClient,perplexityTlsClient,grokTlsClient,notionTlsClient,lmarenaTlsClient,claudeCodeCCH,claudeCodeFingerprint,claudeCodeObfuscation,claudeCodeCompatible}.ts, open-sse/config/cliFingerprints.ts, src/mitm/ Paskutinį kartą atnaujinta: 2026-09-02 — v3.8.51 Auditorija: inžinieriai, prižiūrintys konkretiems teikėjams skirtas maskavimo integracijas.

„OmniRoute“ integruojamas su teikėjais, kurių perimetro sistemos aktyviai identifikuoja neoficialių klientų skaitmeninius atspaudus (TLS JA3/JA4, antraščių tvarką, JSON turinio struktūrą, vientisumo prieigos raktus). Šiame puslapyje aprašomi „OmniRoute“ suteikiami maskavimo mechanizmai ir jų įgyvendinimo vietos.

Teisinė ir etinė pastaba

Maskavimo funkcijos sukurtos tam, kad „OmniRoute“ galėtų veikti kaip suderinamumo sluoksnis tarp naudotojams priklausančių oficialių paskyrų („Claude Code CLI“, „Codex“, „Antigravity“, „Cursor“ ir kt.) ir „OmniRoute“ suvienodintos API. Jos nėra skirtos sukčiavimo aptikimo sistemoms apeiti, prisijungimo duomenims bendrinti ar teikėjų paslaugų teikimo sąlygoms pažeisti. Prižiūrėtojai tikisi, kad operatoriai laikysis pirminių teikėjų paslaugų teikimo sąlygų, su kuriomis sutiko kurdami paskyras.


TLS skaitmeninių atspaudų sluoksnis

open-sse/utils/tlsClient.ts — wreq-js („Chrome 124“)

Nuolatinės wreq-js sesijos tingiai sukuriamos kiekvienai paskyros aprėpčiai ir nustatytam tarpiniam serveriui. Viso proceso mastu TlsClient telkinyje laikoma ne daugiau kaip 128 sesijos, kurios imituoja „Chrome 124“ naršyklę „macOS“ sistemoje, skirtą pirminiams serveriams už „Cloudflare“. TlsClient.fetch() saugiai nutraukia veikimą, kai vietinė vykdymo aplinka nepasiekiama; iškviečiančioji pusė gali aiškiai pasirinkti atsarginį mechanizmą už šio apgaubo ribų.

  • Sesijos profilis: browser: "chrome_124", os: "macos"
  • Tarpinio serverio nustatymas (prioriteto tvarka): HTTPS_PROXYHTTP_PROXYALL_PROXY (taip pat mažosiomis raidėmis)
  • Skirtasis laikas: TLS_CLIENT_TIMEOUT_MS (paveldimas iš FETCH_TIMEOUT_MS, numatytoji reikšmė 600000)
  • wreq-js atsakas yra suderinamas su fetch (headers, text(), json(), clone(), body).
  • Pirmojo baito stebėjimo mechanizmas (open-sse/utils/tlsFirstByteWatchdog.ts, #12656): TlsClient.fetch() grąžina rezultatą vos gavus pirminio serverio antraštes, todėl vien TLS_CLIENT_TIMEOUT_MS negali apriboti atsako turinio, kuris niekada nepateikia pirmojo baito. guardTlsFirstByte() vykdo lenktynes tarp pirmojo atsako turinio read() ir TLS_FIRST_BYTE_WATCHDOG_MS (numatytoji reikšmė 10000, 0 jį išjungia); tinkamai veikiantis atsako turinys nepaveikiamas, o užstrigęs atsako turinys atšaukia wreq skaitytuvą ir leidžia esamai proxyFetch TLS atsarginio mechanizmo logikai pereiti prie tiesioginio / tarpinio serverio išsiuntimo mechanizmo (pakartotinai siųsti nesaugi užklausa, pvz., POST su turiniu, vis tiek pateikia klaidą, užuot buvusi nepastebimai siunčiama pakartotinai).

Žiniatinklio slapukų teikėjo perdavimo mechanizmas — wreq-js 3.2.0

open-sse/services/tlsClientBase.ts yra bendras toliau nurodytų penkių specializuotų žiniatinklio slapukų perdavimo mechanizmų adapteris. Kiekvienas paprastas teikėjo apgaubas pasirenka naršyklės / OS profilį. Adapteris naudoja vieną wreq vykdymo aplinkos įkėlimo mechanizmą ir perdavimo mechanizmų telkinį iš open-sse/utils/tlsClient.ts, susietą pagal profilį, OS ir nustatytą tarpinį serverį, o kiekvienoje užklausoje naudojama cookieMode: "ephemeral". Todėl paskyros ir užklausos bendrai naudoja perdavimo lygmens ryšius, tačiau niekada nebendrina wreq sesijos ar slapukų saugyklos.

Teikėjas Profilis Imituojama OS Srauto EOF politika
Claude chrome_146 Linux įtraukti [DONE]
Perplexity firefox_148 macOS įtraukti event: end_of_stream
Grok chrome_146 Linux neįtraukti [DONE]
Notion chrome_146 Windows įtraukti [DONE]
LMArena chrome_146 Windows nėra žymeklio; užverti gavus vietinį EOF
  • Srautinis perdavimas tiesiogiai naudoja vietinio atsako ReadableStream; laikinasis failas ar pagalbinis procesas nesukuriamas.
  • Prieš pateikiant srautą patikrinama iki 256 pradinių baitų. SSE teikėjai buferizuoja ne SSE klaidas; „Grok“ / „LMArena“ susieja „Cloudflare“ patikras su 403, o HTML tarpinius puslapius su 502.
  • Vietinės užklausos skirtajam laikui ir toliau taikomas absoliutus griežtas JS terminas. Užstrigimas panaikina ir užveria tik paveiktą profilio / OS / tarpinio serverio perdavimo mechanizmą, o prieš kitą užklausą jis sukuriamas iš naujo.
  • Tarpinio serverio nustatymo prioritetas: kiekvieno iškvietimo proxyUrl → užklausos aprėpties paskyros / valdymo skydelio kontekstas → HTTPS_PROXY / HTTP_PROXY / ALL_PROXY (įskaitant variantus mažosiomis raidėmis). Nustatymo klaidos saugiai nutraukia veikimą ir neleidžia nutekėti tiesioginiam ryšiui. „LMArena“ sąmoningai atlieka nustatymą pagal arena.ai.
  • byteResponse grąžina pagal turinio tipą pažymėtą data: URL be UTF-8 duomenų sugadinimo.
  • Klaidos yra TlsClientUnavailableError (paketas / priedas nepasiekiamas), TlsClientHangError (viršytas terminas) ir WreqTransportCapacityError (bendroji sesijos talpos klaida), kai visi 128 riboti profilio / OS / tarpinio serverio lizdai yra aktyvūs arba užveriami.

Pirmiau aprašyta bendroji TlsClient sesija išlieka specializuota nuolatinei naršyklės palaikomai slapukų būsenai. Abu keliai pakartotinai naudoja vieną podėlyje saugomą wreq modulio įkėlimo mechanizmą ir proceso gyvavimo ciklo apdorojimo mechanizmą; jų telkiniai lieka atskiri, nes jų slapukų gyvavimo trukmė sąmoningai skiriasi.

Profilius palaiko užfiksuotos versijos paketas, tačiau realus WAF priimtinumas gali kisti nepriklausomai nuo vietinių sutarties testų. Prieš teigdami, kad pasiektas lygiavertiškumas pirminio teikėjo naršyklei, patikrinkite skaitmeninių atspaudų pakeitimus naudodami aiškiai autorizuotą realią paskyrą.


Claude Code maskavimo rinkinys

Kai cliCompatMode įjungtas, OmniRoute pertvarko siunčiamas Claude užklausas taip, kad jų nebūtų galima atskirti nuo claude-cli srauto. Kartu veikia trys moduliai:

claudeCodeFingerprint.ts

Apskaičiuoja 3 simbolių cc_version kontrolinį atspaudą, įterpiamą į atsiskaitymo antraštę:

SHA256(SALT + msg[4] + msg[7] + msg[20] + version)[:3]
  • FINGERPRINT_SALT = "59cf53e54c78" (įrašyta tiesiogiai; sutampa su oficialiu klientu)
  • Įvestys: pirmojo naudotojo pranešimo teksto simboliai, esantys 4, 7 ir 20 indeksuose, bei versijos eilutė
  • Išvestis: 3 simbolių šešioliktainis prefiksas

claudeCodeCCH.ts (kliento turinio maiša)

Serverio pusės vientisumo patikra, kurią oficiali Claude Code CLI apskaičiuoja naudodama Bun/Zig. OmniRoute ją iš naujo įgyvendina su xxhash-wasm:

  1. Serializuoti turinį naudojant cch=00000; vietos rezervavimo reikšmę
  2. xxhash64(bytes, seed) & 0xFFFFF
  3. Nuliais iš kairės papildytas 5 simbolių mažųjų raidžių šešioliktainis skaičius
  4. Pakeisti cch=00000; apskaičiuotu žetonu

Konstantos:

  • Pradinė reikšmė: 0x6e52736ac806831e
  • Šablonas: /\bcch=([0-9a-f]{5});/

claudeCodeObfuscation.ts

Po pirmojo „jautrių“ klientų pavadinimų simbolio įterpia Unicode nulinio pločio jungiklį (U+200D), kad aukštesnio lygio filtrai negalėtų jų aptikti naudodami grep. Numatytasis žodžių sąrašas:

opencode, open-code, cline, roo-cline, roo_cline, cursor, windsurf,
aider, continue.dev, copilot, avante, codecompanion

Taikoma: system blokams, visam messages[].content ir tools[].description / tools[].function.description turiniui. Operatorius gali pakeisti naudodamas setSensitiveWords().

claudeCodeCompatible.tsanthropic-compatible-cc-* teikėjai

Trečiųjų šalių Anthropic tarpinėms tarnyboms, priimančioms tik „tikrą Claude Code“ srautą:

  • CLAUDE_CODE_COMPATIBLE_USER_AGENT = "claude-cli/2.1.258 (external, sdk-cli)"
  • CLAUDE_CODE_COMPATIBLE_STAINLESS_PACKAGE_VERSION = "0.112.1"
  • CLAUDE_CODE_COMPATIBLE_STAINLESS_RUNTIME_VERSION = "v26.3.0"
  • Pagal numatytuosius nustatymus anthropic-beta = "claude-code-20250219,interleaved-thinking-2025-05-14,effort-2025-11-24"
  • Kiekvieno ryšio perjungiklis „Įjungti redact-thinking beta“ prideda redact-thinking-2026-02-12, kai CC Compatible aukštesnio lygio tarnybai konkrečiai reikia redaguotų samprotavimo srautų
  • Kiekvieno ryšio perjungiklis „Įjungti apibendrinto samprotavimo rodymą“ išsaugo providerSpecificData.requestDefaults.summarizeThinking ir prideda display: "summarized" prie CC Compatible samprotavimo užklausų, kuriose rodymo režimas dar nenustatytas
  • CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07" (Opus/Sonnet 4.x šeima)
  • Numatytasis kelias: /v1/messages?beta=true

Susiję to paties rinkinio moduliai:

  • claudeCodeConstraints.ts — temperatūros ir podėlio valdymo taisyklės
  • claudeCodeToolRemapper.ts — įrankių pavadinimų persiejimas
  • claudeCodeExtraRemap.ts — papildomas naudingosios apkrovos normalizavimas

Antigravity maskavimas

Antigravity užklausose kviečiančiojo tekstas išsaugomas baitas į baitą. OmniRoute neįterpia nulinio pločio simbolių į užklausas ir nepervadina ar neįterpia įrankių, kad imituotų IDE klientą.

antigravityHeaderScrub.ts

Prieš persiunčiant pašalina Stainless SDK žymeklius (x-stainless-lang, x-stainless-package-version, x-stainless-os, x-stainless-arch, x-stainless-runtime, x-stainless-runtime-version, x-stainless-timeout, x-stainless-retry-count, x-stainless-helper-method).

⚠️ Rizika: ANTIGRAVITY_CREDITS=always (didelė paskyros blokavimo rizika)

ANTIGRAVITY_CREDITS=always (naudojamas open-sse/executors/antigravity.ts) nukreipia kiekvieną užklausą per Antigravity AI Credit Overages (mokamus Google kreditus), užuot leidus nemokamo plano kvotai riboti naudojimą. Tai dokumentuota kaip funkcija, tačiau tai yra viena dažniausiai mūsų gaunamų pranešimų apie paslaugų teikimo sąlygų pažeidimą priežasčių — kelios Google Ultra paskyros buvo užblokuotos su 403 / "service disabled for ToS violation" / insufficient_quota, kai kelias valandas veikė su =always.

Apribojimus taiko Google, ir OmniRoute negali jų išvengti. Aplinkos kintamojo pavadinimas ir esama dokumentacija sudaro įspūdį, kad šią parinktį saugu įjungti, tačiau taip nėra.

Kodėl tai piktnaudžiavimo aptikimo sistemas suaktyvina labiau nei vien nemokamo plano naudojimas:

  • Nuolatinės automatizuotos vienos Google paskyros išlaidos pažymimos kitaip nei nemokamo plano naudojimas, kuris pasiekia kvotą ir sustoja.
  • Papildomų kreditų naudojimui netaikoma spartos riba, todėl netinkamai sukonfigūruotas klientas per kelias minutes gali išleisti kelis šimtus USD ir atrodyti kaip API rakto perpardavimas arba robotų srautas.
  • Kai keli OmniRoute naudotojai lygiagrečiai naudoja papildomus kreditus iš to paties išorinio IP adreso, signalas dar labiau sustiprėja.

Rekomenduojama praktika:

  1. Palikite numatytąją reikšmę ANTIGRAVITY_CREDITS=off, nebent operatorius aiškiai prisiima mokamų kreditų naudojimo ir paskyrai taikomų sankcijų riziką. retry pirmiausia siunčia įprastą užklausą ir ne daugiau kaip vieną kartą įterpia kreditus po tinkamos kvotos 429 klaidos; always įterpia kreditus jau į pirmąją užklausą.
  2. Paskirstykite apkrovą tarp teikėjų naudodami Auto-Combo (model: "auto" arba kr/glm/etc-combo), užuot apkrovę vieną Antigravity paskyrą iki ribos.
  3. Nustatykite kiekvieno ryšio RPM ribas Antigravity teikėjo redagavimo puslapyje (Dashboard → Providers → Antigravity → ryšys → spartos apribojimas). 3060 RPM yra pagrįsta viršutinė ilgalaikio naudojimo riba.
  4. Naudokite stabilų, operatoriaus valdomą aukštesnio lygio tinklo ryšį ir venkite vieną paskyrą bendrinti tarp nesusijusių naudotojų ar darbo krūvių.
  5. Jei paskyra užblokuota: pateikite apeliaciją per support.google.com → „Restore Workspace/Account access“, pridėdami tikslų Google atsiųstą quota_exceeded / service disabled atsakymo turinį. Paskyros atkūrimas negarantuojamas.

Aplinkos kintamųjų žinyne aprašytos kiekvieno kreditų režimo pasekmės paskyrai ir išlaidoms.

Susijusios vietos:

  • open-sse/executors/antigravity.ts — nuskaito process.env.ANTIGRAVITY_CREDITS
  • src/lib/oauth/providers/antigravity.ts — prisijungimo duomenų perdavimas
  • Pradinis incidento pranešimas: diskusija #1183

CLI kontrolinių požymių registras — open-sse/config/cliFingerprints.ts

Kiekvienam teikėjui skirta lentelė, nustatanti tikslią antraščių ir JSON turinio laukų tvarką, užfiksuotą iš oficialių CLI mitmproxy trasų. Šiuo metu užregistruoti: codex, claude, taip pat vykdymo metu nustatomi profiliai faile providerHeaderProfiles.ts, skirti antigravity ir github.

interface CliFingerprint {
  headerOrder: string[]; // skiriamos didžiosios ir mažosios raidės
  bodyFieldOrder: string[]; // aukščiausio lygio JSON raktai
  userAgent?: string | (() => string);
  extraHeaders?: Record<string, string>;
}

Įjunkite arba išjunkite kiekvienam teikėjui naudodami aplinkos kintamuosius (žr. toliau). Kai ši funkcija išjungta, antraštės ir turinio raktai pateikiami tokia tvarka, kokią nustatė Node/JSON, todėl juos lengva identifikuoti pagal kontrolinius požymius.


MITM tarpinis serveris (Antigravity, Linux/macOS/Windows)

CLI, kurių dvejetainių failų negalima nukreipti naudojant OPENAI_BASE_URL, atveju OmniRoute paleidžia vietinį TLS užbaigiantį tarpinį serverį. Galiniai taškai yra kataloge src/app/api/cli-tools/antigravity-mitm/.

Metodas Galinis taškas Paskirtis
GET /api/cli-tools/antigravity-mitm Būsena — veikia, pid, dnsConfigured, certExists
POST /api/cli-tools/antigravity-mitm Paleisti MITM (reikalingi apiKey ir sudoPassword)
DELETE /api/cli-tools/antigravity-mitm Sustabdyti MITM
GET /api/cli-tools/antigravity-mitm/alias Pateikti modelių alternatyviuosius vardus
PUT /api/cli-tools/antigravity-mitm/alias Išsaugoti įrankio modelių alternatyviuosius vardus

Perimamas tikslinis pagrindinis kompiuteris: daily-cloudcode-pa.googleapis.com („Antigravity“ aukštesniojo lygio serveris).

Paleidimo seka (src/mitm/manager.ts::startMitm)

  1. Sugeneruoti savarankiškai pasirašytą sertifikatą naudojant selfsigned (RSA-2048, SHA-256, 1 metams) — cert/generate.ts
  2. Įdiegti sertifikatą sistemos patikimų sertifikatų saugykloje — cert/install.ts
  3. Pridėti pagrindinių kompiuterių įrašą 127.0.0.1 daily-cloudcode-pa.googleapis.comdns/dnsConfig.ts
  4. Paleisti src/mitm/server.cjs su ROUTER_API_KEY ir MITM_LOCAL_PORT (numatytoji reikšmė 443)
  5. Įrašyti PID į <DATA_DIR>/mitm/.mitm.pid

Dinaminis Linux patikimų sertifikatų saugyklos aptikimas — cert/install.ts

getLinuxCertConfig() nuosekliai tikrina prioritetų sąrašą ir pasirenka pirmą esamą katalogą:

Distribucijų šeima Katalogas Atnaujinimo komanda
Debian / Ubuntu /usr/local/share/ca-certificates update-ca-certificates
Arch / CachyOS / Manjaro /etc/ca-certificates/trust-source/anchors update-ca-trust
Fedora / RHEL / CentOS /etc/pki/ca-trust/source/anchors update-ca-trust
openSUSE /etc/pki/trust/anchors update-ca-certificates

Sertifikato failo pavadinimas: omniroute-mitm.crt. Kontrolinis požymis tikrinamas naudojant getCertFingerprint() (DER SHA-1).

Be to, kai pasiekiama certutil, updateNssDatabases() įdiegia sertifikatą kiekvieno naudotojo NSS duomenų bazėse: ~/.pki/nssdb, ~/snap/chromium/.../nssdb, visuose Firefox profiliuose (įskaitant snap), naudodama slapyvardį OmniRoute MITM Root CA.

macOS / Windows

  • macOS: security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain
  • Windows: padidintomis teisėmis paleista PowerShell → certutil -addstore Root

Autentifikavimas

Visuose MITM galiniuose taškuose privalomas valdymo autentifikavimas (requireCliToolsAuth). Sudo slaptažodis laikomas modulio srityje (niekada ne globalThis) ir išvalomas iškvietus stopMitm().


User-Agent perrašymai — aplinkos kintamieji (.env.example 12 skyrius)

Kintamasis Numatytoji reikšmė
CLAUDE_USER_AGENT claude-cli/2.1.258 (external, cli)
CODEX_USER_AGENT codex-cli/0.149.0 (Windows 10.0.26200; x64)
GITHUB_USER_AGENT GitHubCopilotChat/0.54.0
ANTIGRAVITY_USER_AGENT antigravity/2.0.1 linux/arm64 google-api-nodejs-client/10.3.0
KIRO_USER_AGENT AWS-SDK-JS/3.0.0 kiro-ide/1.0.0
QODER_USER_AGENT Qoder-Cli
CURSOR_USER_AGENT Cursor/3.4

Juos naudoja open-sse/executors/base.ts::buildHeaders(), dinamiškai atlikdama paiešką. Atnaujinkite juos, kai paslaugų teikėjai išleidžia naujas CLI versijas — pasenusios UA eilutės pradedamos atmesti kaip priklausančios pasenusiems klientams.

CLI suderinamumo režimo perjungikliai (.env.example 13 skyrius)

Kintamasis Poveikis
CLI_COMPAT_CODEX=1 Codex kontrolinis atspaudas
CLI_COMPAT_CLAUDE=1 claude-cli kontrolinis atspaudas
CLI_COMPAT_GITHUB=1 GitHub Copilot Chat kontrolinis atspaudas
CLI_COMPAT_ANTIGRAVITY=1 Antigravity kontrolinis atspaudas
CLI_COMPAT_KIRO=1 Kiro
CLI_COMPAT_CURSOR=1 Cursor
CLI_COMPAT_KIMI_CODING=1 Kimi Coding
CLI_COMPAT_KILOCODE=1 KiloCode
CLI_COMPAT_CLINE=1 Cline
CLI_COMPAT_ALL=1 Įjungti visus pirmiau nurodytus

Paslaugų teikėjo IP adresas visada išsaugomas — perjungiklis tik pakeičia užklausos perdavimo formato atvaizdą, bet nekeičia išeinančio srauto IP adreso.


Gaunamų antraščių sanitizavimas

Prieš persiųsdama „OmniRoute“ išvalo gaunamas kliento antraštes, kad iš „Cursor“ gauta užklausa neatskleistų User-Agent: Cursor/X.Y.Z „Claude“ aukštesniojo lygio paslaugai. Neleidžiamų reikšmių sąrašą, sinchronizuojamą su „Zod“ schemomis ir vienetų testais, rasite src/shared/constants/upstreamHeaders.ts.


Kontrolinių atspaudų atnaujinimas paslaugų teikėjui juos pakeitus

  1. Užfiksuokite oficialaus CLI srautą naudodami mitmproxy (TLS perėmimas ir išklotinė)
  2. Išgaukite JA3/JA4 ir tikslų antraščių eiliškumą
  3. Atnaujinkite atitinkamą CLI_FINGERPRINTS[...] įrašą
  4. Atnaujinkite atitinkamą numatytąją *_USER_AGENT reikšmę faile .env.example
  5. Jei pasikeitė pati TLS prisijungimo procedūra, atnaujinkite atitinkamą paslaugų teikėjo apvalkalą arba wreq-js parinktį browser:
  6. Paleiskite konkrečiam paslaugų teikėjui skirtus TLS testus ir rankinį bandomąjį testą su veikiančia paslaugų teikėjo sistema
  7. Išleiskite pataisos leidimą; dokumentuokite pakeitimą faile CHANGELOG.md

Testai

  • open-sse/services/__tests__/claudeTlsClient.test.ts — bendrinamo TLS apvalkalo veikimas
  • tests/unit/anthropic-cache-fingerprint.test.ts — kontrolinio atspaudo determinizmas
  • tests/unit/chatgpt-web-source-retirement.test.ts — bendrasis slaptas „ChatGPT Web“ šaltinis lieka pašalintas, o „Codex Web“ — išlaikytas

Taip pat žr.