2012-04-04 144 views
3

我有一個iOS應用程序認證到Rails應用程序。第一次驗證時,它需要提交用戶名和密碼,並且作爲回報,rails應用程序返回一個令牌,iOS應用程序可以使用該令牌在進一步的通信中進行驗證。保護iOS應用程序和Rails應用程序之間通信的最簡單方法是什麼?

他們之間傳遞的信息包括用戶的電子郵件地址和其他微不足道的信息,但沒有像財務細節等高度敏感。我需要一種方法來保護這些通信。

我可以添加此保護的最簡單方法是什麼?

+0

如何使用ssl? – Panagiotis 2012-04-04 14:48:50

+0

@Panagiotis使用Rails設置SSL非常重要。 – Undistraction 2012-04-04 14:50:43

+0

凹凸。但是,您知道,使用網絡工具,有人可以攔截您的通信,甚至無需查看代碼。另一種方法是實現加密,但不建議使用下面的@Khôi提到的加密方法。 – Panagiotis 2012-04-04 14:52:34

回答

2

HTTPS是保護通信安全的直接方式,它可以在通過電線時保護通信。可以使用oAuth完成重複使用,然後使用令牌進行後續通信。您可能希望採用Facebook在其iOS SDK中採用的方法。他們將自己的登錄頁面放在UIWebView(HTTPS)中,併爲隨後的調用返回oAuth令牌。

編輯:由於SSL似乎是「脫離桌子」 - 爲什麼你不只是用基本認證進行認證,並讓每次調用重新認證而不是使用令牌。

+0

你的意思是隻使用HTTP/SSL進行握手,然後使用oAuth?爲什麼不用HTTPS/SSL保護它。有缺點嗎? – Undistraction 2012-04-04 15:03:13

1

爲您的網絡服務器獲取可信和有效的證書並使用SSL/HTTPS。這是大多數人的做法。

我不會推薦實施你自己的加密方法。

+0

我的Rails應用程序託管在Heroku上,所以我可以搭載他們的證書,但在本地獲得HTTPS的同時仍然允許通過HTTP訪問我網站的安全區域似乎非常困難。 – Undistraction 2012-04-04 14:58:23

0

你使用SSL的問題在當地讓我想起了這個tutorial

當瑞恩被迫SSL,他提到,它不會在開發環境(本地),只有在生產和檢測工作。這個問題在六分鐘左右討論。看起來,如果你用ssl部署你的應用程序,那麼它將起作用。 Omniauth和使用外部提供者的情況也是如此。它在本地不起作用,但它在部署時會執行。

+0

謝謝。是啊。我現在有點撕裂。看起來像一個真正的惡夢讓SSL在本地工作,但我並不想等到解決任何問題(然後我不想在分期中解決它們)。 – Undistraction 2012-04-05 08:15:41

+0

我完全理解。 – Dru 2012-04-05 15:21:08

相關問題