REST API güvenliğini

4 Cevap java

Ben her bir REST API faaliyet gösteren çeşitli web servisleri tarafından desteklenen olacak bir PHP sosyal medya web uygulaması geliştirme ortasında duyuyorum. Web servisleri muhtemelen MySQL veri katmanı ile Java uygulanan olacak ama ben yapmaya çalışıyorum ne bütün mesele gerçekten kolay incelikleri ne bağlı olarak farklı dilleri / veri mağazalarında modülleri uygulamak olun.

Yani, örneğin, PHP kodu bir web hizmeti ve Yayınlar Onlar doğrulanmış olmalıdır eğer kontrol etmek için kullanıcı adı ve şifre bağlanan bir giriş formu uygulamasına kullanıcı günlükleri. Ben normalde bu noktada bir oturumu başlayacak ve bir oturumda veri deposunda saklamak.

Bir kullanıcı başka bir kullanıcıya özel mesaj gönderir eğer başka bir örnek olabilir. Mesaj, tüm depolama dikkat cekti özel mesajlaşma, web servisine POSTed olacaktır. Benzer web hizmeti bir kullanıcı için iletileri almak için kurulamadı.

Java REST web hizmeti gerçekleştirmiyor ve ben geçirilen verileri güvenli ve iade edilen kullanıcıların veri olduğundan emin olmak için nasıl tamamen emin değilim PHP buna bağlantı yapmak için nasıl anlamak rağmen. Örneğin ben özel mesajları gibi kullanıcının tüm almak istiyorsanız nasıl web hizmeti kullanıcılara olduğunu dönmek biliyor. Ben GET url parçası ama sonra kesinlikle herhangi bir eski kullanıcı olarak kullanıcıların tanımlayıcı sadece GET url anlamaya ve diğer halklar mesajları bakmak için kullanabilirsiniz ki geçebileceği. Ben belki bana oturumu veri deposunu kontrol edin ve emin doğru kullanıcı yapmak için izin verecek oturum tanımlayıcı ve IP adresi üzerinden geçebileceği düşündüm?

Önemli olan veri güvenliğini sağlamak için - kullanıcı adı / parola gibi ben sadece SSL üzerinden geçmek düşündüm.

Bu daha iyi benim sorunu açıklar umuyoruz.

Teşekkürler

4 Cevap

HTTP Digest kimlik doğrulaması bir göz atın. Çoğu müşteri destek olmalı ve bu auth ayrıntıları isteği kendisi yükü bozmadan başlığının bir parçası olarak her isteği ile güvenli bir şekilde geçirilebilir anlamına gelir.

Ben OAuth gerektiren iyi bir seçim olduğunu düşünüyorum. Sizin son kullanıcılar, diğer web sitelerine kendi veri erişim için kullanıcı adları ve şifreleri sormak gerekmez takdir edilmelidir. Bildiğim kadarıyla SSL gibi, açıkça eğer yapıyor değer. Sen performans trade-off kabul edilebilir olup olmadığını görmek gerekir.

API HTTP protokolü taklit gerektiğini unutmayın.

Http vatansız olduğunu, ve herhangi Sessions kadar ekleyerek, sahte bir "Alwaysconnected" yöntemine çalışıyoruz.

Her aramalar için iki istekleri göndermek gerekecek gibi bir LoginForm ile, bu kadar ;)

Bu temelde 2 soru vardır.

Gizlilik bir sorun olduğunda ben güvenli seçenek için gitmek istiyorum: (HTTPS) SSL üzerinden veri servis yapın.

Bildiğim kadarıyla doğrulama ile ilgili olarak, çeşitli olasılıklar vardır. Temel üzerinde SSL bunlardan biridir, ancak bir cookie ile basit bir giriş formu başka biri olabilir. (ASP.Net örneğin Form Kimlik Doğrulaması.) Bu, tüm kimlik doğrulama mekanizması uygulamak istiyorum nasıl bağlıdır.