KamoCRM

Wymagana ważna sesja na nieuwierzytelnionych punktach końcowych rurociągu

FixVectorService
Szycy
23 września 2026 11:36 UTC
Autor
Kamo
Pochęt się
a3d6885

POST /convert-vector i WS / / rury w ogóle nie brały auth — 4820f44 ograniczony rozmiar i rozmiar przesyłania Zbieżność konwersji, ale pozostawiła faktyczną dziurę otwartą w oczekiwaniu na decyzję o uwierzytelnieniu Surowa przeglądarka WebSocket, ponieważ ani nagłówek X-OTK, ani własny nagłówek X-OTK nie są ani tokenem na nosiciela, ani Opcja tam (Gatront nie może ustawiać niestandardowych nagłówków i jednorazowy klawisz w łańcuchu zapytań WS Wyląduje w Traefiku / dziennikach dostępu). Traefik trasy /vector-ws/od razu do tej usługi, z pominięciem Kamo-internal's APIService brama całkowicie, więc każdy, kto mógłby dotrzeć do tej kapsuły - która - oznaczało, że każdy w Internecie - może wybiec z procesora / pamięci Za darmo lub używaj go jako anonimowego proxy konwersji obrazu. Poprawka: obaj dzwoniący są kodem przeglądarki pochodzącej z tej samej liczby na wewnętrznej stronie. Wysyła plik cookie sesji na każdą prośbę do tej usługi, tak samo jak do kamo-internal same. usługi/session_auth.py sprawdza ten plik cookie dokładnie w sposób, w jaki kamo-wewnętrzny sprawdza jeden z nich Strona serwera (jego aplikacja/lib/ksemSessionShared.ts / sessionServer.ts / apiProxy.ts kształt): wartość pliku cookie JEST id sesyjnym, ważna tylko na 128 znakach sześciokątnych, a sesja jest Ważny, gdy Redis ma cokolwiek na "" + to id - tylko z repliki, z tej samej 5-attowa próba / 2 s na nowo próbne trasy kamo-internal używane do tolerowania opóźnienia replikacji. Liczba błędów Redisa Jak "nie znaleziono", zamiast machać rozmówcą. - POST /convert-wektor: 401 przed przesłaniem zostanie odczytane. - WS /ws/pipeline: accept() nadal się zdarza (uvicorn dostarcza tylko prawdziwy kod WS close – tutaj 1008, Naruszenie polityki – po rozpoczęciu uścisku dłoni; zamknięcie przed zaakceptowaniem upadków na go nagich HTTP 403 z odrzuconym kodem), a następnie zamyka się natychmiast, zanim jakakolwiek ramka zostanie odczytana. - k8s/configmap.yaml dostaje ten sam - kamo-internal's own Konfigmapa przenosi się - Redis tej klaster nie ma ACL, więc PASSWORD jest pusty wszędzie, gdzie jest Wyżywany, nie dosłowny stojący za tajemnicą, która nie istnieje. - Nigdy nie loguje wartość pliku cookie lub id sesji (klep Redis JEST Id, po prostu poprzedzony). /zdrowie pozostaje otwarte, celowo – nic tutaj tego nie zmienia. Testy: test_session_auth.py. Mutacje sprawdzone przez odwrócenie dwóch stron połączeń main.py lokalnie: Testy odrzucenia po stronie HTTP nie powiodły się (wyśmiewany konwerter zostaje wezwany zamiast pominięty) i Test strony WebSocket wisi wprost (nic nigdy nie zamyka połączenia) – oba potwierdzają, że strażnik jest nośność; przywrócona po. Znana luka, poza zasięgiem: lokalna ścieżka devowa kamo-internal (NEXT_PUBLIC_IMAGE_PIPELINE_URL / localhost: 8000) nazywa tę usługę międzyżynącą i ani logoVectorize.ts's fetch() ani useImagePipeline.ts's WebSocket domyślnie wysyła poświadczenia między oryginalnymi, więc lokalny program przeciwko Lokalna wektorowaservice będzie teraz 401/1008 w obu punktach końcowych. Produkcja nie ma wpływu (pochodzenie samo-pochodzenie).

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Start Free ForeverZobacz ceny