SORU
2 ŞUBAT 2012, PERŞEMBE


'In app benim Node.js güvence REST API?

GERİSİ benim API için biraz yardım alabilirim. İstemci tarafında Express, MongoDB ve Backbone.js kullandığı Node.js bir uygulama yazıyorum. Son iki gün tüm bu zahmetli ve şanssız geçirdim. Zaten kontrol ettim:

Özenle tasarlanmış bir REST API kullanarak iyi olacağını düşündüm bu yüzden benim arka uç ve önyüz mümkün olduğunca ayrı tutmak istiyorum. Benim düşüncem eğer bir iPhone uygulaması (ya da buna benzer başka bir şey) geliştirmek için en iyisi, verilere erişmek için API kullanabilir.

ANCAK, bu güvenli olmak istiyorum. Bir kullanıcı benim web uygulaması oturum ve benim API güvenli olduğundan emin olmak istiyorum. Bir yerde okumuştum OAuth, OAuth 2.0 ve Openıd, Hmac, karma vs... istediğim için kullanmaktan kaçının harici giriş (Facebook/Twitter/etc) istediğim kayıt ve giriş için benim app/sunucu.

...ama yine de kafam karıştı. Belki de gece geç ya da benim beynim yanmış. ama burada gerçekten ne için bazı adımlar ile yapabilirim. Bana güvenli bir API oluşturmak için adımlar nelerdir?

Herhangi bir yardım, herhangi bir bilgi, herhangi bir örnek, adım falan çok iyi olurdu. Yardım lütfen!

CEVAP
2 ŞUBAT 2012, PERŞEMBE


Artan güvenlik / karmaşıklık için:

Temel HTTP Auth

Birçok API kitaplıkları inşa etmek izin verir (örneğin Django içinde Piston) veya web sunucusu halleder. Nginx ve Apache server direktifleri b64encoded basit bir şifre ile güvenli bir site için kullanabilirsiniz. Dünyanın en güvenli şey değil ama en azından bir kullanıcı adı ve şifre!

Eğer Nginx kullanıyorsanız bir bölümü ana bilgisayar yapılandırma gibi ekleyebilirsiniz:

auth_basic "Restricted";
auth_basic_user_file /path/to/htpasswd;

(location / blok koy)

Dokümanlar: http://wiki.nginx.org/HttpAuthBasicModule

Python komut dosyası, bir parola oluşturmak ve bir dosyaya çıktı almanız gerekir: http://trac.edgewall.org/browser/trunk/contrib/htpasswd.py?format=txt

Dosya konumunu çok Nginx erişimi olduğu sürece önemi yok.

HTTPS

Bu uygulama, bu en temel olduğu için sunucudan bağlantıyı güvenli ve orta saldırılarda adam önleyecektir.

Nginx ile bunu yapabilirsiniz, bunun için dokümanlar çok kapsamlıdır: http://wiki.nginx.org/HttpSslModule

Bu güzel (ve ücretsiz!) olacağı için kendi imzanızı taşıyan sertifika.

API Anahtarları

Bu gibi herhangi bir biçimde olabilir, ama onlar gerekir iptal erişimi parası vermek. Muhtemelen bağlantı iki ucu geliştiriyorsanız sizin için mükemmel bir çözüm değil. Üçüncü taraf API, örneğin Github kullanarak olduğunda kullanılacak eğilimindedir.

OAuth

OAuth 2.0 ile burada olduğu gibi. Temel işleyişini en kimlik doğrulama (Twitter, Facebook, Google, vb.) için de facto standart bir şey olduğunu bilmiyorum kütüphaneler ve dokümanlar bir ton bu uygulamaya yardımcı olmak için vardır. Bu varlık genellikle kimlik doğrulaması için üçüncü parti bir hizmet sorarak bir kullanıcının kimliğini doğrulamak için kullanılan olduğunu söyledi.

Verilen bu işin gelişimi iki taraftan da olur yeterince koymak API arkasındaki Temel HTTP Auth ve hizmet üzerinden HTTPS, özellikle eğer istemiyorsan boşa zaman tembellik ile OAuth.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • Project Mooncircle

    Project Moon

    6 Aralık 2009