0

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

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

即以下 URL 可能在客户端中被硬编码:

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

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

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

地址部分或 url 不能更改。

目前,客户端具有以下连接身份验证挑战,即它将连接到任何东西:

- (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 连接并且 url 地址是硬编码的?

4

1 回答 1

0

HTTPS提供数据加密和身份验证,但您的证书应由证书颁发机构签署。访问硬编码的 URL 不是安全漏洞——这就是 web 服务/API 的工作方式。但是,如果没有正确的证书设置,有人可能会冒充您的服务器。仅使用 SSL/TLS 是不够的。

于 2012-05-30T00:06:32.393 回答