KamoCRM

Guardia STOMP SUBSCRIBE ai messaggi dal vivo di una sessione e al segnale WebRTC

FixMediaService
Spegnimento
23 settembre 2026 alle ore 11:14 UTC
Autore
Kamo
Impegno
d47b471

/topic/chat/session/{guid} e /topic/webrtc/session/{guid} non sono stati sorvegliati a tutti: qualsiasi presa autenticata potrebbe SUBSCRIBE al vivo di un'altra sessione messaggi di chat o WebRTC offerta/risposta/ traffico puramente sapendo (o indovinare) la sua guida - il gemello vivo del buco trascritto-letto MediaController.canReadSession chiuso per HTTP (f7b2bd5). FINE client a o era anche aperto; nessun cliente legittimo mai invia loro (ogni reale uno solo abbonamenti), quindi un SEND forgiato potrebbe iniettare un messaggio dal vivo falso o segnale cornice in una sessione il forger non può nemmeno leggere. WebSocketConfig.preSend ora protegge SUBSCRIBE a entrambi i prefissi con SessionAccessGuard#canRead - la stessa regola MediaController cancello letto utilizza, Non e' una quarta copia e ora... rifiuta SEND a entrambi i diritti, abbinando ogni altro argomento in quella lista dei permessi. canRead necessario un secondo punto di entrata: la sua firma esistente chiede HtttpServletRichiesta dei diritti del chiamante (extra di SUPPORT TICKET ammissione), e un telaio STOMP non ha nessuno - solo ciò che WebSocketAuthInterceptor timbrato nella sessione al CONNECT (memberId/orgId/rights, leggere il stesso *** sessione una richiesta HTTP avrebbe risolto). Il nuovo canRead(sessione, caller, Elenco i diritti di <String>) sovraccarico prende quella forma direttamente; entrambi i sovraccarichi ora delegano ad una implementazione privata, quindi la regola reale è ancora scritta esattamente una volta. Un visitatore di chat pubblica non è un membro affatto - PublicChatWebSocketInterceptor francobolli èPublicChat/sessionGuid invece, già risolto e verificato contro il loro token di sessione a handshake. La loro regola di abbonamento è diretta guid match contro quello, mai SessionAccessGuard#canRead (che richiede un Membro e rifiuta un chiamante che non ha nessuno) - confermato contro kamo-internal, che si iscrive sempre a questi due argomenti e mai manda a entrambi. Coperto da... (membro ammesso/rifiuto da parte della guardia, un pubblico visitatore ha ammesso alla propria sessione e ha rifiutato diversi, argomenti non correlati intatti), nuovi casi in SessionAccessGuardTest e StompDestinationAuthzTest per la lista dei diritti sovraccarico e il nuovo rifiuto SEND. Mutation-checked: lasciare il nuovo Controllo SUBSCRIBE, infrangendo la regola del sovraccarico dei diritti, e (come un controllo regressione) l'affermazione preesistente "non custodita" che chiude ogni girare una specifica asserzione rossa; tutti restaurati e reperibili verdi.

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo