Masaüstü ve mobil uygulamalar, tüm OAuth 2.0 sürecinin tamamlanmasına yardımcı olmak için uygulamaya gömülü tarayıcılardır
Süreç şekilde gösterilmiştir
OAuth2.0 web 1) AuthCode'u belirtilen Web yönlendirme Uri'sine geri döndür (bu URI uygulama geliştiricisi tarafından yapılandırılmıştır) 2) Token'ı değiştirmek için, client kimliğini doğrulamak için clientId ve clientSecret ile geçmeniz gerekir (uygulama arka uçu servisi tarafından elde edilen)
Yukarıdaki iki noktaya dikkat edersek, 1) Web uygulamasının yönlendirmeUri algılanması geçersiz olduğu için 2) Arka uç hizmeti olmadığı için istemci güvenli değildir Karşılaşabileceğimiz saldırı, aşağıdaki şekilde gösterildiği gibi, kötü amaçlı bir uygulamanın authCode'u engelleyerek AuthorizationServer'a mesaj göndererek tokenı elde etmesi olabilir; böylece token müşterinin uygulamaya izni olmadan başka bir resmi uygulama yetkisine alınır ve saldırının amacına ulaşılır.
Çözüm:
1. İstemci rastgele bir dizi oluşturur: kod doğrulayıcı ve bu rastgele diziyi kaydeder code_challenge = transform(code_verifier, [Plain| S256]) Dönüşüm yöntemi sade ise, kod meydan okuması kod doğrulayıcıya eşdeğerdir Dönüşüm yöntemi S256 ise, kod meydan okuması kod doğrulayıcının Sha256 hash'ına eşittir 2. Yetkilendirme kod talebiyle ilgili bir kod meydan okuması getirin ve kod meydan okuması nasıl oluşturulur. Bu ikisi, sunucu tarafından verilen yetkilendirme koduna bağlıdır 3. Yetkilendirme kodunu alındıktan sonra, istemci Access Token için yetkilendirme kodunu değiştirirken ilk oluşturulan kod doğrulayıcıyı getirir. Sunucu, kod doğrulayıcıyı bound transform yöntemine göre hesaplar, hesaplanan sonucu bound code challenge ile karşılaştırır ve tutarlıysa Access Token verir. |