Darbvirsmas un mobilās lietotnes ir iegultas pārlūkprogrammas lietotnē, lai palīdzētu pabeigt visu OAuth 2.0 procesu
Process ir parādīts attēlā
OAuth2.0 tīmeklis 1) Atgrieziet autentifikācijas kodu norādītajā Web redirectUri (šo URI ir konfigurējis lietotnes izstrādātājs) 2) Lai mainītu marķieri, jums jānodod clientId un clientSecret, lai pārbaudītu klienta identitāti (iegūts ar lietojumprogrammas aizmugures pakalpojumu)
Ņemot vērā divus iepriekš minētos punktus, 1) Tāpēc, ka ne tīmekļa lietotnes redirectUri noteikšana ir nederīga 2) Tā kā nav aizmugures pakalpojuma clientSecret nav drošs Tad uzbrukums, ar kuru mēs varam saskarties, ir tāds, kā parādīts zemāk redzamajā attēlā, var būt ļaunprātīga lietojumprogramma, kas pārtver autentifikācijas kodu, lai nosūtītu ziņojumu autorizācijas serverim, lai iegūtu marķieri, lai marķieris tiktu iegūts bez klienta atļaujas lietojumprogrammai, bet citai oficiālai lietojumprogrammas atļaujai, sasniedzot uzbrukuma mērķi.
Risinājums:
1. Klients ģenerē nejaušu virkni: koda verificētāju un saglabā šo nejaušo virkni code_challenge = transform(code_verifier, [Vienkāršs| S256]) Ja transformācijas metode ir vienkārša, tad koda izaicinājums ir līdzvērtīgs koda verificētājam Ja transformācijas metode ir S256, tad koda izaicinājums ir vienāds ar koda verificētāja Sha256 jaucējkodu 2. Iesniedziet koda izaicinājumu autorizācijas koda pieprasījumam un koda izaicinājuma ģenerēšanai. Šie divi ir saistīti ar servera izsniegto autorizācijas kodu 3. Pēc autorizācijas koda iegūšanas klients atnes sākotnēji ģenerēto koda verificētāju, apmainot autorizācijas kodu pret piekļuves marķieri. Serveris aprēķina koda verificētāju saskaņā ar saistītās transformācijas metodi, salīdzina aprēķināto rezultātu ar saistītā koda izaicinājumu un izsniedz piekļuves marķieri, ja tas ir konsekvents. |