KamoCRM

Przeglądarka WebSockets uwierzytelnianie za pomocą klucza jednokrotnego, nigdy token sesji

Fixkamo-internal
Shipped
24 września 2026 01:31 UTC
Author
Kamo
Commit
46191c4

15 miejsc hak otwiera STOMP / SockJS połączenie z MediaService (media. < domain > / ws) lub EmailService (poprzez przepisywanie / email- ws) umieszczał w łańcuchu zapytań pierwotny identyfikator sesji 128- char * * * - Dziennik dostępu Traefika trzymał go w klartexcie tak długo, jak go trzyma. Ten dowód to: nie można już odczytać ze skryptu strony (aplikacja / lib / session), więc wartość była I tak znikną z tych haczyków. Hak zamiast tego miesza klucz jednokrotny: Nie, nie, nie. POST / api / generate- otk? cel = ws (klucz 64- heks- char, 30 s TTL) i przekazuje go do stompjs klienta 'beforConnect', który stompjs czeka przed każdym połączeniem i każdym ponownym połączeniem - więc haczyk, który Godzinę później rekonesansują świeży klucz, zamiast odtwarzać go na nowo. Każdy webSocketFactory czyta najnowszy klucz w chwili, gdy buduje URL SockJS ('? otk = < key >'); a nieudany mięta nadal próbuje połączyć bez klucza, którego backend odmawia, i stompjs ponownie próbuje po ponownym połączeniu Delay. Istniejące "jest sesja w ogóle" bramy są nietknięte - kilka haków nadal czytać SessionStorage bezpośrednio do tego sprawdzenia prawdziwości, który jest w porządku i niezwiązane z wartość na drucie. * * * * * * * * * * * * * * * * * teraz nie udaje się także w żadnym pliku klienta (testy są wyłączone - nazywają go zakaz) który nadal buduje adres URL z '* * * =', wskazując na mintWsKey. Znalazł dokładnie te 15 miejsca pochodzenia / głównego; nikt nie pozostaje, a przywrócenie jednego starego haka zmienia go na czerwony. MediaService (b0e08ac2) i EmailService (279723a4) już akceptują '? otk =' - sprawdzone najpierw i nie zużyty, nieznany klucz odmówił bezpośrednio, dziedzictwo '? * * * = "nadal akceptowane dla starszych klientów - i obydwa uruchamiają te zobowiązania. Testy: wsSessionAuth.test.ts, * * * * * * * * * * * * * * * * * * * * * * * * (Vitest teraz zbiera app / hacks / * * / _ _ tests _ _); typy / @ stomp _ _ stompjs.d.ts deklaruje przed Connect.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing