将数据从iOS应用程序发送到HTTPS服务

时间:2017-07-28 16:35:52

标签: ios web-services encryption xamarin https

我使用Xamarin开发了一个iOS应用程序,我不确定在调用使用HTTPS的服务时加密是如何工作的。

在我的结尾,我没有做任何特别的事情:我利用RestClient并将凭证添加到json序列化请求的主体。然后我将其发布到HTTPS服务。

这样安全还是我应该做得更多?我不确定iOS是否在加密方面为我处理其余部分。

2 个答案:

答案 0 :(得分:0)

使用HTTPS时,除服务器地址外的所有内容在传输过程中都会被加密。加密对客户端和服务器完全透明。

示例:对于网址https://myApiEndpoint.com/getIsUserValid/user123/password123‌​4,仅myApiEndpoint.com未加密,其余网址已加密。

为了防止MITM攻击针对服务器证书,即验证请求上收到的证书是否属于正确的服务器。

如果您控制服务器,请使用TLS 1.2和Perfect Forward Secrecy。

答案 1 :(得分:0)

答案

是的,使用HTTPS,您最有可能是安全的。但是,有几件事需要验证以确保没有安全漏洞。

有关TLS的更多信息

默认情况下,使用TLS对安全HTTPS点的通信加密邮件的标头和正文。

  

HTTPS包括通过传输层安全性加密的连接中的超文本传输​​协议(HTTP)通信。 Source

要验证的事项

不要在URL中使用Sensitve数据

HTTPS端点的网址加密。永远不要将任何敏感数据放入HTTPS点的URL中,这一点非常重要。要确保加密敏感数据,请将数据放入邮件正文中。

例如,如果您要验证用户的登录名(用户名:user1234,密码:password1234),请不要将用户名/密码作为url参数发送。而是序列化用户名和密码数据,并将其设置为HttpContent的{​​{1}}。

错误: HttpClient

iOS HttpClient实现

确保您使用https://myApiEndpoint.com/getIsUserValid/user123/password1234进行iOS HttpClient实施。

在与安全NSUrlSession端点通信时,

NSUrlSession默认会使用TLS。从iOS 10开始,HTTPS默认情况下不允许与非安全NSAppTransportSecurity端点进行通信;通过更新HTTPApple Documentation中的HTTP,可以启用与不安全NSAppTransportSecurity点的通信。

您可以验证iOS Build Settings中使用的Info.plist(下面的屏幕截图)。

iOSHttpClient