KamoCRM

S'absentir à la signalisation Web d'une session en direct et à la signalisation WebRTC

FixMediaService
Expédié
23 septembre 2026 à 11:14 UTC
Auteur
Kamo
Commite
d47b471

/topic/chat/session/-guid- et/thème/webrtc/session/-guid n'ont pas été gardés du tout: toute socket authentifiée pourrait s'abstituer à une autre session en direct les messages de chat ou le trafic WebRTC offre/réponse/ICE uniquement en sachant (ou deviner) son goudronnier - le jumeau vivant du trou de lecture de la transcription MediaController.canReadSession fermé pour HTTP (f7b2bd5). Client SENDE à soit était également ouvert; aucun client légitime ne leur a jamais envoyé (tout cas réel un seul abonnement), de sorte qu'un faux SEND pourrait injecter un faux message en direct ou la signalisation de la trame dans une session la faussée ne peut même pas lire. WebSocketConfig.preSend maintenant protège SUBSCRIBE aux deux préfixes avec SessionAccessGuard-canRead - la même règle MediaController's read gate gate, pas une quatrième exemplaire de celui-ci - et - maintenant refuse SEND aux deux droits, en faisant correspondre tous les autres sujets dans cette liste. canRead a besoin d'un deuxième point d'entrée: sa signature existante demande un HttpServletDemande pour les droits de l'appelant (SUPPORT-TICKET) l'admission), et une trame STOMP n'en a pas - seulement ce que WebSocketAuthInterceptor Timbaqué dans la session à CONNECT (memberId/orgId/droits, lire Il est possible de régler une demande HTTP. La nouvelle canLise (session, caller, List-String- droits) la surcharge prend cette forme directement; les deux surcharges sont désormais déléguées à une implémentation privée, de sorte que La règle actuelle est encore écrite exactement une fois. Un visiteur public de chat n'est pas du tout membre - PublicChatWebSocketInterceptor timbres est PublicChat/sessionGuid à la place, déjà résolu et vérifié contre leur jeton de séance à l'embrayage. Leur règle d'abonnement est directe guid match contre cela, jamais SessionAccessGuard-canRead (qui nécessite un Membre et refuserait un appelant qui n'en a pas) - confirmé contre kmo-internal, qui n'est jamais abonné à ces deux sujets et jamais envoie à l'un ou l'autre. Couvert par le membre de l'association (adhérent/refusé) par le garde, un visiteur public a admis à sa propre session et a refusé un différents sujets non liés, sans rapport), nouveaux cas dans SessionAccessGuardTest et StompDestinationAuthzTest pour la liste des droits la surcharge et le nouveau refus de SEND. Mavulation vérifiée: abandon de la nouvelle SUBSCRIBE vérifier, enfreindre la règle de la liste de droits elle-même, et (en tant que le contrôle de régression) l'affirmation préexistante "non gardée à l'avance" qui ferme chaque Tourner une affirmation spécifique rouge; tout restauré et redéplait le vert.

Tous les changements

Comme ce que tu vois expédier ?

Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.

Commencez gratuitement pour toujoursPrix de visualisation