KamoCRM

Session id перестает возвращаться к сценарию страницы — основа для герметичных ручек

Fixkamo-internal
Отгружено
24 сентября 2026 г. в 00:09 UTC
Автор
Kamo
Завершение
3e3c3e7

*** была установлена читаемость (httpOnly:false) и несколько ответов передали исходный идентификатор сеанса Браузер. Сценарий страницы не может использовать флаг HttpOnly cookie, если конечная точка считывает значение обратно: - /api/session/extend and /api/session/info returned sessionInfo.sessionId, /api/user-info returned как tokenId, /api/debug/cookies как ***Ценность. Теперь они возвращают превью из 8 символов (единственный) Потребитель был экраном System Debug или ничего. - /valid подается без сессионного шлюза и отображается каждый файл cookie VALUE на странице Сервер, который также видит файлы cookie HttpOnly. Теперь он показывает имена и размеры. - /api/session/extend plants *** with httpOnly: true. Браузер по-прежнему отправляет его на EventSources. <img>/<video> и /meet/join, которые зависят от него; сценарий больше не может читать его. - **************** теперь также не подходит для чтения любое **** печенье. Обоснование следующего шага, инертное до тех пор, пока /api/validate не начнет выдавать ручки: - app/lib/sessionHandle.ts: сессия вкладки HANDLE представляет собой 128-гексовый идентификатор, запечатанный с помощью AES-256-GCM под ключ, полученный (HKDF) из SESSION HANDLE SECRET и случайный ключ для каждого браузера в HttpOnly Host-KBK cookie. Ровно 128 символов, поэтому каждый существующий клиентский чек принимает его; любой другой браузер; подделка не дает тега. sessionHandle.test.ts охватывает печать/открытую, иностранную Браузер, подделка, не секрет. - proxy.ts открывает ручку, поступающую в X-***-Token в реальный идентификатор для маршрута, поэтому ~180 маршруты, которые читают этот заголовок, не нуждаются в изменении; ручка, которая не открывает, падает как заголовок, так и файл cookie вместо того, чтобы позволить маршруту вернуться к сеансу другой вкладки. The matcher теперь включает в себя /api/:path* явно (правило статического файла пропущено /api/*.png). - /api/generate-otk gains purpose=ws (30 с) для рукопожатий WebSocket; logout сохраняет ключ браузера (Другие ручки вкладок зависят от него). - k8s/deployment.yaml монтирует kamo-internal-session-handle Secret (создается в кластере).

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

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

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

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