KamoCRM

Verificare RingCentral webhooks prima di fidarsi di loro

FixVOIPService
Spegnimento
23 settembre 2026 alle ore 03:08 UTC
Autore
Kamo
Impegno
6f10239

I webhook di RingCentral sono stati elaborati con zero verifica: WebhookController ha diretto gli eventi di telefonia/message-store direttamente in E' il momento giusto. E' il momento giusto. era `return true; // TODO`, e gli abbonamenti sono stati creati senza verificaToken Per niente. Il punto finale è pubblico. Chiunque abbia fatto un carico utile artigianale potrebbe iniettare testo in qualsiasi org, forge eventi di conformità STOP/START, attivare un popup in entrata per un numero arbitrario (toll-fraud adiacente), o spoof "da" contenuto mostrato a membro — e la risoluzione al numero («findByFromPhoneNumber») non è mai stata portata a termine un org, quindi un numero reale del cliente potrebbe essere abbinato e mostrato al inquilino sbagliato anche da un carico reale. Fisso: - RingCentralWebhookProvisioner genera ora una verifica casuale per-instanceToken (persisted in config json, redatta dalle impostazioni API), registra gli abbonamenti in un URL per-instance (`?instanceId=`, corrispondente Teams/JustCall), e invia il token Percio' RingCentral riecheggia come il Intestazione `Verification-Token` su ogni notifica. L'abbonamento di RingCentral URL-proprietà handshake (il `Validation-Token` header WebhookController già echi indietro) è intoccato — che è un intestazione diverso che dimostra una cosa diversa. Ora controlla l'intestazione in modo costante. tempo e fallisce chiuso (non token ancora, nessun intestazione, o un errore tutti rifiutano). - WebhookController risolve l'istanza da `?instance Id=`, richiede Verifica-Token di passare, e solo allora elabora l'evento — mirato a L'istanza e' org. E' una cosa che non va. ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** match in un org DIFFERENTE rispetto al webhook verificato è trattato come unowned, esattamente come un numero che nessuno possiede, mai fidato. - Sicurezza di distribuzione (le 3 istanze live RingCentral non devono perdere il traffico in entrata): ogni passaggio di RingCentralWebhookProvisioner ora riconcilia l'effettivo conto elenco degli abbonamenti — abbonamento prefisso (non istanzaId/token) è DELETED e sostituito con una verificata, quindi live istanze self-heal entro ~30 del nuovo pod diventando leader (è già in fase di avvio + ogni 12h). Per il gap prima che guarisce completa, WebhookController accetta ancora un evento senza istanzaId a tutti sotto il prefisso, regole non arrotolate — ma SOLO fino al 2026-10-13, e ogni Usa i registri ad alta voce. linea in modo che il fallback è visibile e non permanente. Dopo quella data non si chiude come tutto il resto. Relazione per il coordinatore: nessuna azione necessaria per le 3 istanze live RingCentral — guariscono automaticamente sulla prossima distribuzione. Operativamente, cerca di ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** smettere di apparire in pochi minuti. Se appare ancora vicino al 2026-10-13, scoprilo perché l'abbonamento di quell'istanza non è stato guarito (RingCentralJwtTokenService guasti sono registrati separatamente) prima del taglio, o estendere E' il momento giusto. Test: Non e' vero. (rivestimenti chiusi senza token/header/ token sbagliato, accetta il token corrispondente, intestazione caso insensibile), E' il momento giusto. (genera+persists+riutilizza il token; cancella un abbonamento prefisso e registra una sostituzione verificata; lascia una corrente sana abbonamento da solo), più i casi di org-scoping aggiunti a VoipCallEventService Test e VoipMessageServiceKeywordTest. Tutte e quattro le mutazioni-controllate: ripristinare il relativo guardia gira il test corrispondente rosso, ripristinandolo diventa verde.

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