16

Uygulamamın kimliğini doğrulamak için Facebook'un JS SDK'sını kullandığımda (FB.init yöntemini kullanarak) tek ihtiyacım Uygulama kimliğim. Uygulama gizli ve/veya uygulama anahtarım gerektirmez. Ancak, PHP SDK'sını kullandığımda, uygulama sırrım gerekliydi (en azından öğrendiğim örnek uygulama kimliğini ve uygulama sırrını kullanmıştı).Facebook JS SDK, kimlik doğrulaması için uygulama sırrına ihtiyaç duymaz: Ne kadar güvenli?

Kimlik doğrulaması için güvenli ve JS SDK'yı kullanması önerilir mi? Kimlik doğrulama akışı JS SDK ile ne kadar gerçek olur?

sayesinde Vineet

+3

Uygulamanızın bir JS dosyasındaki gizliliğini kullanmanız, kullanıcıların bunu düz metin olarak görmesine olanak tanır ve bu, uygulamanız için bir güvenlik ihlali anlamına gelir. –

+0

FB SDK'larla yıllar geçtikçe bir şey değişti mi? ** PHP SDK ** gereksinimleri ** app-id ** + ** erişim belirteci ** + ** gizli anahtar ** kullanıcının verileri için istekte bulunur. ** JS SDK ** sadece ** uygulama kimliği ** + ** erişim belirteci **. FB'nin bildiği gibi, JS isteği gerçekten gizli anahtar olmadan sayfamdan yapılır? Ya da neden ** PHP SDK ** JS SDK ile aynı şekilde çalışmıyor (gizli anahtar olmadan)? – user775175

cevap

1

diğer konu sunucu tarafında herhangi bir şey için müşteriden almak FB kullanıcı nesnesini kullanmak değil dikkatli olmak. Bunun nedeni, birisi için bir betik yapmak çok kolay olurdu çünkü fb.api '/ me' ifadesini çağırmak yerine, uygulamanıza başka bir kullanıcı kimliği ile "sahte" JSON kullanıcı nesnesi gönderir. Kullanıcının herhangi bir sunucu tarafı işlemesi yapıyorsanız, sanırım gerçekten de bir tür sunucu tarafı kimlik doğrulaması yapmanız gerekir.

1

O "İmza Doğrulama değil" siz "Alanlar doğrulama" neden güvenli DEĞİL, bu var ve Advanced Registration belgede paragraflar:

Eğer facebook verileri talep, biz , 'dan önce form alanlarını signed_request ürününde doğrulayın. Bu, tüm verilerin orijinal olduğunu ve 'u bir şeyleri doğrulamak zorunda kalmadan aldığınızı varsayar. ortaya çıkabilecek bir sorun, bir akıllı saldırganın form alanlarını değiştirebilir ve size gönderebilir, böylece size doğrulanmamış veriler verir.

fazla bilgi için bu belgeyi okuyun, ben de bir tutorial (eklentisi hakkında bir tanıtım) yazdı ve istemci tarafından gelen fields niteliğini nasıl başa gösterdi oldum.

3

Kimlik doğrulamasının ne kadar güvenli olduğunu da inceliyorum - Bence bu soru sorulduktan sonra işler değişti, bu yüzden sorduğunuzda bu bilgiler doğru değildi.

JS SDK'nın yeni sürümü OAuth 2.0 kullanıyor. Bu iyi belgelenmiştir - ayrıntılar için OAuth 2.0 site kontrol edin.

SDK'nın uygulama sırrına ihtiyacı olup olmadığı konusunda - bununla ilgili biraz kafa karışıklığım var. Uygulama sunucusu tarafında, kütüphaneler JS SDK'nın uygulama sırrını kullanarak çerezleri imzaladığını gösterir (facebook-python sdk'daki get_user_from_cookie işlevine bakın) - ancak, JS SDK'nın uygulama sırrını nasıl bildiği tamamen açık değildir. Doğrudan FB'den FB'ye doğrudan kimlik doğrulama sürecinde konuştuğunda bunu dinamik olarak alabileceğini tahmin ediyorum ama emin değilim.

(Düzenleme: JS SDK'nın uygulama sırrıyla doğrudan FB'den alınan tanımlama bilgisini aldığını düşünüyorum - JS SDK hiçbir zaman uygulama sırrını bilmez).

Q'nize tam olarak cevap vermemekle birlikte, bunun nasıl çalıştığına biraz daha fazla ışık tutabilirsiniz.

İlgili konular