KamoCRM

Guardar SUBSCRIBE STOMP para mensagens ao vivo de uma sessão e sinalização WebRTC

FixMediaService
Navios
23 de setembro de 2026 às 11:14 UTC
Autor
Kamo
Enviar
d47b471

/topic/chat/session/{guid} e /topic/webrtc/session/{guid} não foram vigiados em tudo: qualquer soquete autenticado poderia SUBSCRIBE para outra sessão ao vivo mensagens de chat ou WebRTC oferta/resposta/ice tráfego puramente por saber (ou supondo) seu guid - o gêmeo vivo do furo transcrito-leitura MediaController.canReadSession fechada para HTTP (f7b2bd5). Enviar ao Cliente ou também estava aberto; nenhum cliente legítimo envia-lhes apenas assina), de modo que um SEND forjado pode injetar uma mensagem ao vivo falsa ou sinalizando o frame para uma sessão que o falsificador não consegue ler. WebSocketConfig.preEnviar agora guarda SUBSCRIBE para ambos os prefixos com SessionAccessGuard#canRead - a mesma regra que o portal lido do MediaController usa, Não é uma quarta cópia dele. se recusa a ENVIAR para ambos, combinando todos os outros tópicos nessa lista de permissões. canRead precisa de um segundo ponto de entrada: sua assinatura existente pede uma HttpServletPedido pelos direitos do chamador (SUPPORT TICKET extra admissão), e um quadro STOMP não tem nenhum - apenas o que WebSocketAuthInterceptor carimbado na sessão no CONNECT (memberId/orgId/rights, leia o a mesma sessão *** uma solicitação HTTP teria resolvido). A nova CanRead(sessão, chamador, List<String> rights) sobrecarga toma essa forma diretamente; ambas as sobrecargas agora delegam em uma implementação privada, de modo que A regra real ainda está escrita exatamente uma vez. Um visitante de chat público não é de todo um Membro - PublicChatWebSocketInterceptor selos é PublicChat/sessionGuid em vez disso, já resolvido e verificado contra o seu símbolo de sessão no aperto de mão. A sua regra de assinatura é uma regra directa guid match contra isso, nunca SessionAccessGuard# canRead (que requer Presidente. - Segue-se na ordem do dia o relatório (Doc. kamo-internal, que só assina estes dois tópicos e nunca envia para qualquer um dos dois. Coberto por: (membro admitido/recusado) pelo guarda, um visitante público admitiu a sua própria sessão e recusou diferentes, temas não relacionados intocados), novos casos em SessionAccessGuardTest and StompDestinationAuthzTest for the rights-list sobrecarga e a nova recusa do SEND. Verificada a mutação: largando o novo SUBSCRIBE verificar, quebrando a própria regra da lista de direitos, e (como um verificação de regressão) a afirmação pré-existente "não guardada" que fecha cada torne uma asserção específica vermelha; toda restaurada e executada novamente em verde.

Todas as alterações

Como o que vês no transporte?

Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.

Começar Livre Para SempreVer Preços