我正在寻找一种方法让我的iOS应用程序与我在Ruby on Rails中构建的RESTful API进行安全通信。
如果我按照Heroku的“SSL Endpoint”文档,并允许通过HTTPS访问我的Rails应用程序,如果我从我的iOS应用程序(通过NSMutableURLRequest()
)进行HTTPS调用,它是否会受到保护?或者人们仍然能够破译参数?
如果这不是一个好的选择,有什么建议吗?
答案 0 :(得分:2)
是的,使用SSL可以保护所有传输到API /从API传输的数据,以防有人嗅探或捕获您的网络流量。
确保您的请求转到https。如果您的服务器未正确配置,则启用SSL后,客户端仍可以在没有SSL安全性的情况下发布到http。因此,我建议您确保将应用设置为使用https网址。
答案 1 :(得分:2)
为了保护专用网络上的最终用户,您可以将MITM攻击超出范围,只使用HTTPS。
对于公共网络上的用户,MITM已成为现实,您需要从服务器检查证书,以确保它是您服务器上的证书。您应该检查域名以及证书(或证书的哈希值)。
对付可以访问您的应用程序的黑客(可以从商店下载任何人),非常昂贵且涉及大量校验和检查点,即使这样,它对攻击者来说也很难,不是不可能的
答案 2 :(得分:2)
使用ssl并检查服务器提供的证书可以防止MITM攻击。这并不意味着您阻止用户伪造API请求。
这意味着可以简单地对客户端应用程序进行反向工程,并构建一个克隆应用程序,向您的服务器发出有效请求。 如果你正在运行一个小型服务,这是非常不同的,但它可以,所以总是在服务器端验证你的输入并将它们视为不可信,因为你不能说它们来自哪里。
答案 3 :(得分:1)
通过对代码进行逆向工程,其他人将始终能够解密参数。你可以让它变得更难,但并非不可能。 HTTPS仅保护网络连接,而不是代码。从加密的网络流量中,无法发现参数名称或值。