我有一个客户端(在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连接,并且网址是否足够硬编码?
答案 0 :(得分:0)
HTTPS提供数据加密和authentication,但您的证书应由certificate authority签名。访问硬编码的URL不是安全漏洞 - 这就是webservices / API的工作方式。但是,如果没有正确的证书设置,有人可能会模拟您的服务器。仅使用SSL / TLS是不够的。