KamoCRM

Браузер WebSockets аутентифицируется с одноразовым ключом, а не сессионным токеном

Fixkamo-internal
Отгружено
24 сентября 2026 г. в 01:31 UTC
Автор
Kamo
Завершение
46191c4

В 15 местах крюк открывает соединение STOMP/SockJS с MediaService (media.<domain>/ws) или EmailService (через переписывание /email-ws) помещает исходный идентификатор сеанса 128-char *** в строку запроса (?***=<token>) Журнал доступа Traefik держал его в ясном тексте до тех пор, пока он сохраняет его. Ид это Сценарий страницы больше не читается (app/lib/session) Ручной уплотнитель, так что ценность была Они исчезают из этих крючков, несмотря ни на что. Крючок теперь вместо одноразового ключа: **************************** ПОСТЫ /api/generate-otk?purpose=ws (ключ 64-hex-char, 30 s TTL) и передает его клиенту stumpjs «BeforeConnect», который стомпджс ожидает перед каждым соединением и каждым повторным соединением — так что крюк, который Воссоединяется через час, но все еще мятает свежий ключ, а не воспроизводит устаревший. Каждый WebSocketFactory считывает последний ключ в момент создания URL-адреса SockJS (?otk=<key>); Неудавшийся монетный двор все еще пытается соединиться без ключа, который бэкэнд отказывается, и stumpjs перезапускает После повторного подключения. Существующие «есть сеанс вообще» ворота не тронуты — несколько крючков По-прежнему читайте SessionStorage непосредственно для проверки достоверности, которая не имеет отношения к Значение выходит на провод. **************** теперь также не работает ни один клиентский файл (тесты освобождены - они называют его по имени). Запретить его), который все еще строит URL с '***=', указывая на mintWsKey. Именно эти 15 Сайты по происхождению/основным; ни один не остается, и восстановление одного старого крючка делает его красным. MediaService (b0e08ac2) и EmailService (279723a4) уже принимают «?otk=» - сначала проверяются, а не Употребленный, неизвестный ключ отказался прямо, наследие «?***=» все еще принимается для пожилых клиентов. И те и другие исполняют свои обязанности. Тесты: wsSessionAuth.test.ts, **************** (сейчас наиболее активно собирает приложения/hooks/**/ tests ); types/@stomp stompjs.d.ts объявляется перед Connect.

Все изменения

Подобно тому, что вы видите доставку?

Все это приходит в ваше рабочее пространство само по себе. Начните с бесплатного плана и прочтите эту страницу снова через месяц.

Начать бесплатно навсегдаПосмотреть цены