- Verschifft
- 17. September 2026 um 03:13 UTC
- Autor
- Kamo
- Ausschuss
- 08b81d7
Der Meta connect Flow vertraute seiner URL. GET ************ nahm connectionId und ReturnUrl von der Abfrage-String ohne Session, und Zustand war unsigned base64(connectionId|returnUrl). Jeder, der ein Die UUID der Verbindung könnte den Flow mit ihrem OWN Facebook-Konto ausführen und das Seitenbuch dieser Organisation überschreiben, so der org's Messenger / Instagram Posteingang würde die Seite des Angreifers erhalten. Und ReturnUrl war eine offene Umleitung auf der API-Host: ************ beantwortet 302 auf example.invalid (lebend gesehen). Jetzt kommt nichts darüber, welche Verbindung geschrieben wird, oder wo der Browser als nächstes hingeht, von einer URL: - POST /connect-start (neu) braucht die Mitglieder-Sitzung und MANAGE_CRM_SETTINGS, das Recht jede andere Änderung zu einem soziale Bindungsbedürfnisse. Die Verbindung muss der Organisation des Mitglieds gehören (eine weitere Antwort der Org wie ein vermisst eins) und MESSENGER oder INSTAGRAM sein. Es speichert eine Einweg-Intensität in Redis (Mitglied, Org, Verbindung, und eine Rückgabe-URL OAuthReturnUrlPolicy genehmigt) und antwortet { startUrl auf dem Host der URI umleiten. - GET /start?beenden= löst die Absicht mit GETDEL ein, prägt einen zufälligen Einwegzustand gehaltene Serverseite und setzt ein Browser-bindendes Cookie (HttpOnly, Secure, SameSite=Lax, path-scoped; nur sein SHA-256 wird gespeichert). Ein Vermisster, verbrauchte oder legacy ?connectionId= Anfrage ist eine 400-Seiten-Anfrage, niemals eine Umleitung. - GET /callback löst den Staat mit GETDEL ein, klätet das Cookie, lehnt einen Browser ab, der nicht der ist, der begann es, überprüft erneut, dass das Mitglied noch förderfähig ist und immer noch in der Verbindungsorganisation, und Stellt sich nur auf die gespeicherte Rückgabe-URL um. Der Seitenbeton-Austausch selbst ist unverändert. OAuthReturnUrlPolicy akzeptiert eine https URL mit einem Pfad auf einem Konsolenherkunft, den die Mitglieder dieser Organisation verwenden (seine eigene Live-Domain, jede Organisation bis zu seiner Sicherheits-Provider-Kette, die Plattform), alle von OrgLinkHosts ausgewählt, und baut es aus seinen gespakteten Teilen wieder auf; alles andere wird zur eigenen Konsole der org und zum Weg des Bildschirms. Der Einstellungsbildschirm ändert sich, der connect-start-Schiffe in Kamo-internal aufruft. Bis es die alte Taste verwendet hält versagen, wie es bereits war: es navigierte zu /api/media/... auf dem Konsolen-Host, der keine solche Route hat. Tests: MetaOAuthControllerTest führt den Fluss durch MockMvc mit einer Graph API, die die Seite verbinden sollte, so dass jeder Verweigerung ist das Schecks zu tun. Deaktivierung der Cookie-Prüfung, der Eignungsprüfung, der Org-Prüfung oder der Einzelnutzung Jeder fällt bei einem Test durch. OAuthReturnUrlPolicyTest Pins akzeptiert und verweigert URLs. Komplette Suite: 953 Tests, 0 Ausfälle.