ハードコーディングされた https URL を使用してサーバーに接続するクライアント (iOS 上) があります。
接続が確立されると、サーバーは、今後の接続では別のマシン名やポートを使用する必要があることを示す場合があります。さらに、サーバーは、データを取得する 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 アドレスがハードコードされているだけで十分ですか?