KamoCRM

브라우저 WebSockets는 한 번의 키로 인증되어 세션 토큰을 절대 사용하지 않습니다

Fixkamo-internal
Shipped
2026년 9월 24일 오전 1:31 UTC
Author
Kamo
Commit
46191c4

15 장소 후크는 MediaService (media.<domain>/ws) 또는 STOMP/SockJS 연결을 엽니다 EmailService (/email-ws rewrite를 통해)는 쿼리 문자열에 128-char *** 세션 ID를 넣어 (?***=<token>) — Traefik의 액세스 로그는 Cleartext에 보관하여 한 것을 유지합니다. 즉, 또한 더 이상 모든 페이지 스크립트에서 읽을 수 없습니다 (app/lib/session 손잡이 물개 그것), 그래서 가치 있었습니다 이 후크에서 사라지는 것에 대해. 훅은 이제 한 번의 키 대신: ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 사이트맵 /api/generate-otk?목적=ws (64hex-char 키, 30 s TTL) 그리고 스톰js 클라이언트의 손에 `beforeConnect`, stompjs는 모든 연결하기 전에 기다리고 있습니다. 그리고 모든 재연결 - 그래서 그 후크 다시 한 시간 나중에 여전히 stale을 재생하는 것보다 신선한 키를 mints. 모든 것 webSocketFactory는 SockJS URL (`?otk=<key>`); a를 구축하는 순간에 최신 키를 읽습니다. 실패한 민트는 여전히 아무 열쇠도 연결하고, 백엔드가 거부하고, stompjs retries reconnectDelay 후에. 기존의 "모든 세션이 있습니다"문은 터치되지 않습니다 — 몇몇 걸이 읽는 sessionStorage는 그것의 진실성 체크를 위해, 벌금과 관련이 없는 철사에 나가는 가치. **************** 이제 모든 클라이언트 파일이 실패합니다 (테스트 면제 - 그들은 그것을 명명 forbid it) 여전히 mintWsKey에 대한 `***=`로 URL을 구축합니다. 정확히 발견 15 근원/주요에 위치; 아무도 남아 있고, 1개의 오래된 걸이를 복원하는 것은 빨강을 켭니다. MediaService (b0e08ac2) 및 EmailService (279723a4)는 이미 `?otk=`를 수락 — 첫번째로 검사하고 아닙니다 소모된, 알 수없는 키는 겉보기를 거부, 레거시 '? *** = ' 여전히 이전 클라이언트에 대해 허용 - 그리고 둘 다 그 투입을 실행합니다. 테스트: wsSessionAuth.test.ts, **************** (현재는 app/hooks/**/ tests ); type/@stomp stompjs.d.ts는 beforeConnect를 선언합니다.

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