- Expediere
- 23 septembrie 2026 la 11:36 UTC
- Autor
- Kamo
- Comite
- a3d6885
POST /convert-vector și WS /ws/pipeline nu a luat nici o auth la toate dimensiunea de încărcare plafonată 4820f44 și Convertizare, dar a lăsat gaura reală deschisă în așteptarea unei decizii privind modul de autentificare a browser brut WebSocket, deoarece nici un jeton purtător nici kamo-internal propria antet X-OTK este un opțiune acolo (un WebSocket nu poate seta antetele personalizate și o cheie unică în șirul de interogare WS ar ateriza în jurnalele de acces Traefik). Traefik rute / Vector-ws / * direct la acest serviciu, ocolire poarta APIservice kamo-internal în întregime, astfel încât oricine care ar putea ajunge la acest pod care per *************** inseamna ca oricine de pe internet ar putea sa-l scoata din procesor/memorie gratuit, sau să-l utilizați ca un proxy anonim imagine-conversie. Fix: ambele apelante sunt cod browser de aceeași origine pe intern.<domain>, astfel încât browser-ul deja trimite cookie-ul de sesiune *** la fiecare cerere la acest serviciu, la fel ca și la kamo-intern în sine. servicii/session auth.py verifică cookie-ul exact modul în care kamo-intern verifică unul server-side (its app/lib/ksemSessionShared.ts / sessionServer.ts / apiProxy.ts all agree on the forma): valoarea cookie-ului ESTE ID-ul sesiunii, valabil numai la 128 de caractere hex, iar sesiunea este valid atunci când Redis are nimic la "***" + că id-doar, de la replica, cu același 5-attemp/2s retry kamo-internal propriile rute de utilizare pentru a tolera decalajul de replicare. O eroare Redis contează ca "nu a găsit" mai degrabă decât fluturând apelantului prin intermediul. - Post /convert-vector: 401 înainte de încărcare este chiar citit. - WS /ws /pipeline: accepta() încă se întâmplă (vicorn oferă doar un cod real WS aproape Încălcarea politicii HTTP 403 cu codul aruncat), apoi închide imediat, înainte de a se citi orice cadru. - K8s/configmap.yaml primeşte acelaşi ***************** kamo-internă proprie Configurația poartă consumat, nu o picioare literal în pentru un secret care nu există. - Nu inregistreaza niciodata valoarea cookie-ului sau id-ul sesiunii (cheie Redis este ID-ul, doar prefixat). Sănătatea rămâne deschisă, intenţionat nimic nu-l schimbă. Teste: test session auth.py. Verificat de mutație prin revenirea principal. două site-uri de apel local: Testele de respingere HTTP-side nu reușesc (convertorul batjocorit este numit în loc de sărit) și WebSocket-side test atârnă pur și simplu (nimic nu închide niciodată conexiunea) purtător de sarcină; restaurat după. Decalaj cunoscut, în afara domeniului de aplicare aici: kamo-internal local-dev (NEXT PUBLIC IMAGE PIPELINE URL / localhost:800) numește acest serviciu cross-origine, și nici logoVectorize.ts's put() și nici utilizareImagePipeline.ts WebSocket trimite acreditări cross-origine în mod implicit, astfel încât dev locale împotriva unui Serviciul Vectoral Local va fi acum 401/1008 pentru ambele obiective. Producția nu este afectată (aceeași origine).
