KamoCRM

Navigateur WebSockets authentifier avec une clé unique, jamais le jeton de session

Fixkamo-internal
Expédié
24 septembre 2026 à 01:31 UTC
Auteur
Kamo
Commit
46191c4

Le 15 place un crochet ouvre une connexion STOMP/SockJS à MediaService (média.<domaine>/ws) ou EmailService (via la réécriture /email-ws) a mis l'identifiant de session cru 128-char *** sur la chaîne de requête (?***=<token>) — Le journal d'accès de Traefik l'a gardé en texte clair aussi longtemps qu'il en garde un. Cette identité est également plus lisible à partir du script de page du tout (app/lib/session Poignée scellée), donc la valeur était Je vais disparaître de ces crochets. Un crochet mint maintenant une clé une fois à la place: - Oui. POSTES /api/generate-otk?purpose=ws (une clé de 64 hex-char, 30 s TTL) et la remet au client stompjs `avant Connect`, qui stompjs attend avant chaque connexion ET chaque reconnect - donc un crochet que reconnecte une heure plus tard encore la menthe une nouvelle clé plutôt que de rejouer une stale. Chaque webSocketFactory lit la dernière clé au moment où elle construit l'URL SockJS (`?otk=<key>); menthe échouée tente toujours la connexion avec aucune clé, que le moteur refuse, et stompjs retries après reconnectDelay. Les portes existantes « sont là une session du tout » sont intactes — plusieurs crochets toujours lire sessionStorage directement pour ce contrôle de la véracité, qui est bon et sans rapport avec le la valeur de la sortie sur le fil. **************** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** * prohibe it) qui construit toujours une URL avec `***=`, pointant vers mintWsKey. Il a trouvé exactement ces 15 sites sur l'origine/main; aucun reste, et la restauration d'un vieux crochet devient rouge. MediaService (b0e08ac2) et EmailService (279723a4) acceptent déjà `?otk=` — vérifié d'abord et non consommé, une clé inconnue refusée carrément, l'héritage `?***=' toujours accepté pour les clients plus âgés - et les deux lancent ces commits. Tests: WsSessionAuth.test.ts, **************** (Vitest collecte maintenant app/hooks/**/ tests ); types/@stomp stompjs.d.ts déclare avantConnect.

Tous les changements

Comme ce que vous voyez l'expédition?

Commencez avec le plan gratuit et lisez à nouveau cette page dans un mois, puis passez à l’abonnement payant pour bénéficier de toutes les fonctionnalités.

Commencez gratuitement pour toujoursVoir la tarification