- Szycy
- 17 września 2026 03:13 UTC
- Autor
- Kamo
- Pochęt się
- 08b81d7
Meta connect flow zaufał swojemu adresowemu. GET - wziął connectionID i returnUrl z łańcuch zapytań bez sesji, a stan był niepodpisany baz64 (connectionId|wróćUrl). Każdy, kto znał a UUID połączenia może uruchomić przepływ z ich własnym kontem na Facebooku i nadpisać token strony tej organizacji, Tak więc skrzynka odbiorcza Org's Messenger / Instagram otrzyma stronę atakującego. A returnUrl był otwartym przekierowaniem host API: odpowiedział 302 na przykład.invalid (widoczny na żywo). Teraz nic o tym, które połączenie jest napisane, lub gdzie przeglądarka idzie dalej, pochodzi z adresu URL: - POST /connect-start (nowy) potrzebuje sesji członka i MANAGE_CRM_SETTINGS, prawo do każdej innej zmiany do a Potrzeby w zakresie więzi społecznych. Połączenie musi należeć do organizacji członka (kolejne odpowiedzi orgza, takie jak Brak jednego) i bądź MESSENGER lub INSTAGRAM. Przechowuje one jednolite zamiary w Redis (członek, org, połączenie, oraz Podany w adresie URL zwrotnym OAuthReturnUrlPolicy zatwierdzony) i odpowiada na adres: startUrl - na serwerze przekierowywanym URI. - GET /start?intent wykorzystuje intencję z GETDEL, miętuje losowe jednowykowe utrzymywane po stronie serwera i ustawia Plik cookie wiążący z przeglądarką (HttpOnly, Secure, SameSite-Lax, path-scoped; tylko jego SHA-256 jest przechowywany). Zaginiony, Wydane lub starsze żądanie ?connectId to 400 strony, nigdy przekierowanie. - GET /callback wykorzystuje stan z GETDEL, usuwa plik cookie, odrzuca przeglądarkę, która nie jest tą, która nie jest tą, która Rozpoczęło to, ponownie sprawdza, czy członek nadal kwalifikuje się i nadal jest w organizacji połączenia, oraz Przekierowuje tylko do zapisanego adresu URL zwrotu. Sama wymiana tokenów pozostaje niezmieniona. OAuthReturnUrlPolicy akceptuje adres URL https ze ścieżką początkową konsoli, z której korzystają członkowie tej organizacji (swój własny Domena na żywo, każda organizacja w swoim łańcuchu zapewniającym bezpieczeństwo, platforma, wszystkie wybrane przez OrgLinkHosts, oraz Odbudowuje go od parowanych części; wszystko inne staje się własną konsolą orgi plus ścieżką ekranu. Zmienia się ekran ustawień, który wywołuje połączenia-start statki w kamo-internal. Dopóki nie wejdzie stary przycisk, trzyma Zawodził w taki sposób, w jaki już to zrobił: poruszał się do /api/media/... na hostze konsoli, który nie ma takiej trasy. Testy: MetaOAuthControllerTest przechodzi przez MockMvc z interfejsem API wykresu, który połączy stronę, więc każdy Odmowa jest odmowa czeku. Wyłączenie kontroli plików cookie, ponowne sprawdzenie kwalifikowalności, sprawdzenie org lub jednorazowego użycia Każdy nie przechodzi testu. OAuthReturnUrlPolicySzpilki akceptowane i odmawiane URL. Pełny pakiet: 953 testy, 0 awarii.