0

ハードコーディングされた 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 アドレスがハードコードされているだけで十分ですか?

4

1 に答える 1

0

HTTPSはデータの暗号化と認証を提供しますが、証明書は認証局によって署名されている必要があります。ハードコーディングされた URL へのアクセスはセキュリティ上の欠陥ではありません。それが Web サービス/API のしくみです。ただし、適切な証明書を設定しないと、誰かがあなたのサーバーになりすます可能性があります。SSL/TLS を使用するだけでは十分ではありません。

于 2012-05-30T00:06:32.393 に答える