- Spegnimento
- 17 settembre 2026 alle ore 03:13 UTC
- Autore
- Kamo
- Impegno
- 08b81d7
Il flusso Meta Connect si fidava del suo URL. E' una cosa che non va. la stringa di query senza sessione, e stato non è stato firmato base64 (connectionId|returnUrl). Chiunque conoscesse UUID di connessione potrebbe eseguire il flusso con il loro account Facebook OWN e sovrascrivere il token di pagina di quell'organizzazione, così l'org's Messenger / Instagram casella di posta avrebbe ricevuto la pagina dell'attaccante. E ReturnUrl era un reindirizzamento aperto l'host API: ******************************************************************** ha risposto 302 ad esempio.invalid (visto dal vivo). Ora nulla su quale connessione è scritta, o dove il browser va dopo, viene da un URL: - POST /connect-start (nuovo) ha bisogno della sessione del membro e MANAGE CRM SETTINGS, il diritto ogni altro cambiamento a un bisogno di connessione sociale. La connessione deve appartenere all'organizzazione del membro (le risposte di un altro org come una mancante) ed essere MESSENGER o INSTAGRAM. Conserva un intento a singolo uso in Redis (membro, org, connessione, e un URL di ritorno OAuthReturnUrlPolicy approvato) e risponde { startUrl } sull'host URI redirect. - GET/start? intent= riscatta l'intento con GETDEL, mints a random single-use stato tenuto lato server e imposta un cookie di collegamento del browser (HttpOnly, Secure, SameSite=Lax, path-scoped; solo il suo SHA-256 è memorizzato). Una scomparsa. passato o legacy ?connectionId= richiesta è una pagina 400, mai un reindirizzamento. - GET /callback riscatta lo stato con GETDEL, cancella il cookie, rifiuta un browser che non è quello che ha iniziato, ricontrolla che il membro è ancora idoneo e ancora nell'organizzazione del collegamento, e reindirizza solo all'URL di ritorno memorizzato. Lo scambio di pagina-token è invariato. OAuthReturnUrlPolicy accetta un URL https con un percorso su un'origine della console che i membri di questa organizzazione utilizzano (il suo dominio live, ogni organizzazione fino la sua catena di sicurezza-provider, la piattaforma), tutto scelto da OrgLinkHosts, e la ricostruisce dalle sue parti parsed; qualsiasi altra cosa diventa la console dell'org più il percorso dello schermo. Le impostazioni cambiano la schermata che chiama le navi connetto-start in kamo-internal. Finché non si dispiega il vecchio pulsante si mantiene fallendo il modo in cui ha già fatto: ha navigato a /api/media/... sull'host della console, che non ha tale percorso. Test: MetaOAuthControllerTest cammina il flusso attraverso MockMvc con un'API grafico che WOULD collega la pagina, quindi ogni Il rifiuto e' il controllo. Disattivare il cookie check, la ricontrollabilità dell'idoneità, il controllo org o l'uso singolo ogni fallisce un test. OAuthReturnUrlPolicyTest perni accettati e rifiutati URL. Suite completa: 953 test, 0 guasti.