2012-04-04 139 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

相关问题