Desktopové a mobilné aplikácie sú zabudované prehliadače v aplikácii, ktoré pomáhajú dokončiť celý proces OAuth 2.0
Proces je znázornený na obrázku
OAuth2.0 web 1) Vráť authCode do špecifikovaného Web redirectUri (toto URI je nastavené vývojárom aplikácie) 2) Na zmenu tokenu musíte odovzdať clientId a clientSecret na overenie identity klienta (získané aplikačnou backendovou službou)
Vzhľadom na vyššie uvedené dva body, 1) Pretože webová aplikácia presmerováva detekciu URI je neplatná 2) Pretože neexistuje žiadna backendová služba, klientSecret nie je bezpečný Útok, s ktorým sa môžeme stretnúť, je, ako je znázornené na obrázku nižšie, môže existovať škodlivá aplikácia zachytávajúca authCode a posielať správu AuthorizationServeru na získanie tokenu, čím sa token získa bez autorizácie zákazníka pre aplikáciu, ale pre inú oficiálnu autorizáciu aplikácie, čím sa dosiahne účel útoku.
Riešenie:
1. Klient vygeneruje náhodný reťazec: code verifier a uloží tento náhodný reťazec code_challenge = transform(code_verifier, [Plain| S256]) Ak je metóda transformácie jednoduchá, potom code challenge je ekvivalentný code verifieru Ak je metóda transformácie S256, potom výzva kódu je rovná hashu Sha256 overovateľa kódu 2. Podať výzvu kódu na požiadavku na autorizačný kód a ako generovať výzvu kódu. Tieto dve sú viazané na autorizačný kód vydaný serverom 3. Po získaní autorizačného kódu klient prinesie pôvodne vygenerovaný overovateľ kódu pri výmene autorizačného kódu za prístupový token. Server vypočíta overovateľ kódu podľa metódy viazanej transformácie, porovná vypočítaný výsledok s výzvou viazaného kódu a vydá prístupový token, ak je konzistentný. |