使用SSL保护RESTful API?

时间:2015-05-04 16:43:22

标签: ios ruby-on-rails ruby ssl heroku

我正在寻找一种方法让我的iOS应用程序与我在Ruby on Rails中构建的RESTful API进行安全通信。

如果我按照Heroku的“SSL Endpoint”文档,并允许通过HTTPS访问我的Rails应用程序,如果我从我的iOS应用程序(通过NSMutableURLRequest())进行HTTPS调用,它是否会受到保护?或者人们仍然能够破译参数?

如果这不是一个好的选择,有什么建议吗?

4 个答案:

答案 0 :(得分:2)

是的,使用SSL可以保护所有传输到API /从API传输的数据,以防有人嗅探或捕获您的网络流量。

确保您的请求转到https。如果您的服务器未正确配置,则启用SSL后,客户端仍可以在没有SSL安全性的情况下发布到http。因此,我建议您确保将应用设置为使用https网址。

答案 1 :(得分:2)

为了保护专用网络上的最终用户,您可以将MITM攻击超出范围,只使用HTTPS。

对于公共网络上的用户,MITM已成为现实,您需要从服务器检查证书,以确保它是您服务器上的证书。您应该检查域名以及证书(或证书的哈希值)。

对付可以访问您的应用程序的黑客(可以从商店下载任何人),非常昂贵且涉及大量校验和检查点,即使这样,它对攻击者来说也很难,不是不可能的

答案 2 :(得分:2)

使用ssl并检查服务器提供的证书可以防止MITM攻击。这并不意味着您阻止用户伪造API请求。

这意味着可以简单地对客户端应用程序进行反向工程,并构建一个克隆应用程序,向您的服务器发出有效请求。 如果你正在运行一个小型服务,这是非常不同的,但它可以,所以总是在服务器端验证你的输入并将它们视为不可信,因为你不能说它们来自哪里。

答案 3 :(得分:1)

通过对代码进行逆向工程,其他人将始终能够解密参数。你可以让它变得更难,但并非不可能。 HTTPS仅保护网络连接,而不是代码。从加密的网络流量中,无法发现参数名称或值。