SORU
14 Kasım 2012, ÇARŞAMBA


Neden "saçma" OAuth2 akışı "Örtük" akış çalışıyor bu yüzden bir şey var mı?

"Müşteri (muhtemelen bir tarayıcı) bir erişim Kaynak Sahibi (kullanıcı yani) erişim verdikten sonra token, alacak akış. "Örtülü ile

"Kod" ancak, istemci (genellikle bir web sunucusu) Kaynak Sahibi (kullanıcı yani) erişim verdi. yetki kodu mu sadece akışı Yetkilendirmesi Bu yetki kodu ile istemci API geçen client_id için başka bir çağrı yapar ve birlikte erişim belirteci almak için yetki kodu ile client_secret. All well described here.

Hem akar aynı sonuç var: bir access token. Ancak, "Örtülü" akış çok daha kolaydır.

Soru:Neden "Yetki Kodu "Örtülü" akış iyi dikişler?" akış, rahatsız Neden aynı zamanda "" web sunucusu? Örtülü kullanarak değil

Sağlayıcı için hem de istemci daha fazla iş.

CEVAP
14 Kasım 2012, ÇARŞAMBA


tl;dr:Bu güvenlik nedenlerinden dolayı.

OAuth 2.0 bu iki ölçüt tanışmak istedim:

  1. İstediğiniz izin geliştiriciler için olmayan kullanım-HTTPS yönlendirme URI çünkü tüm geliştiriciler bir etkin SSL sunucu ve eğer onlar yapmak değil, her zaman düzgün yapılandırılmamış (non-self imzalı, güvenilen SSL sertifikaları, sunucu saati senkronize...).
  2. Hackerlar istekleri müdahale ederek yenileme simgeleri/erişim çalmak için güçlü olmak istemezsin.

Detaylar aşağıda:

Örtülü akışı, güvenlik nedenlerinden dolayı bir tarayıcı ortamında mümkündür:

örtülü akışıerişim simgesi, doğrudan karma parçasını (URL bir parametre olarak geçirilir. Karma parçası hakkında önemli bir şey, bir bağlantı, bir karma parçasının bulunduğu izledikten sonra, sadece tarayıcı karma parçanın farkında olmasıdır. Tarayıcılar doğrudan hedef web sayfası (müşterinin web sayfası / yönlendirme URI) için karma parça geçecek. Karma parçası, aşağıdaki özelliklere sahiptir:

  • Sunucuları tarafından okunabilir değil ve çünkü aracı sunucuları/yönlendiriciler (bu önemli) tarafından yakalanan edilemez bir HTTP isteği bu nedenle bir parçası değildir.
  • Onlar sadece tarayıcı üzerinde bulunması - istemci tarafı - karma bölümü okumak için tek yol Bu sayfa üzerinde çalışan JavaScript kullanıyor.

Bu riski bir ara sunucu tarafından yakalanan olmadan olası bir doğrudan Erişim istemci için bir Belirteç için yapar. Bu sadece istemci tarafında mümkün ihtar ve javascript istemci tarafı erişim belirteci kullanmak için çalışan ihtiyacı var.

yetki kodu akışmümkün değil geçmek için bir erişim belirteci doğrudan bir URL parametresi çünkü URL parametreleri bölümünün HTTP İsteği, bu nedenle herhangi bir aracı sunucu/yönlendirici bir istek olurdu pass (yüzlerce olabilir) olabilir okuyabilir erişim belirteci kullanıyorsanız olmayan en güvenli bağlantı (HTTPS) sağlayan nedir bilindiği gibi Man-in-the-middle saldırıları.

Geçen erişim simgesi, doğrudan bir URL param olabilir teorik olarak mümkün ama auth sever diye emin olmak için yönlendirme URI kullanarak HTTPS ile TLS Şifrelemesi ve güvenilir bir SSL sertifikası (genellikle bir Sertifika Yetkilisi (ücretsiz) olduğundan emin olun, hedef sunucu meşru ve HTTP isteği tamamen şifrelenmiş. Tüm geliştiriciler kendi etki ve düzgün biçimde SSL sertifika, SSL satın alarak büyük bir acı olur ve evlat edinme aşağı derece yavaş olur. Bu yüzden bir ara bir kez kullanın "onay kodu" verilir tek meşru alıcısı yapabilir değişimi (çünkü ihtiyacın istemci gizli) ve kod olacak işe yaramaz potansiyel hacker tehlikesini istekleri üzerinden şifresiz işlemler (çünkü bilmiyorlar istemci gizli).

Ayrıca örtülü akışını daha güvenli, potansiyel saldırı vektörlerini var yönlendirme üzerine etki sızdırma gibi olduğunu iddia - müşterinin web sitesinin IP adresini ele geçirme örneğin. Bu örtülü akışını sadece erişim belirteçleri sınırlı bir süre kullanmak gerekiyor) verir ve asla yenileme belirteçleri zaman sınırsız olan) nedenlerinden biridir. Bu sorunu çözmek için, kendi web sayfalarını barındırmak için mümkün olduğunda HTTPS etkin sunucu üzerinde tavsiye ederim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • footiecyclo

    footiecyclo

    26 EYLÜL 2009
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006