如果客户端使用硬编码的URL连接到服务器,它是否安全?

时间:2012-05-29 23:40:12

标签: ios https nsurlconnection pki

我有一个客户端(在iOS上)使用硬编码的https网址连接到服务器。

当建立连接时,服务器可以指示对于将来的连接,应该使用不同的机器名称和/或端口。此外,服务器可以指定url位置后缀以从中获取数据。

即。以下URL可能在客户端中进行了硬编码:

https://machineName.address.port/url-suffix

并且在建立连接之后,服务器可以通知它使用machineName2和portX以及url-suffix / someLocation / somewhere,因此下次客户端连接时将使用url

https://machineName2.address.portX/someLocation/somewhere

地址部分或网址无法更改。

目前,客户端具有以下连接身份验证质询,即它将连接到任何内容:

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
    SecTrustRef trust = challenge.protectionSpace.serverTrust;
    NSURLCredential *cred;
    cred = [NSURLCredential credentialForTrust:trust];
    [challenge.sender useCredential:cred forAuthenticationChallenge:challenge];
}

目前这个应用程序没有做任何需要高安全性的事情 - 没有银行信息被访问,用户没有登录任何东西,没有传输用户信息。客户端只是将数据从服务器下载到设备上。

如果不在客户端添加证书检查,欺骗服务器是否可以向设备发送色情内容,或者是否建立了https连接,并且网址是否足够硬编码?

1 个答案:

答案 0 :(得分:0)

HTTPS提供数据加密和authentication,但您的证书应由certificate authority签名。访问硬编码的URL不是安全漏洞 - 这就是webservices / API的工作方式。但是,如果没有正确的证书设置,有人可能会模拟您的服务器。仅使用SSL / TLS是不够的。