2016-07-05 6 views
4

の形式は、多くのHTTP要求が生成されます:iOS MapKitですべての通信にHTTPSを使用させるにはどうすればよいですか?私のアプリでマップを埋め込む

http://gspe19.ls.apple.com/tile.vf?flags=1&style=1&size=2&scale=0&v=99999999&z=99&x=9999&y=9999&checksum=1&sid=999999&accessKey=XXXXXX 

これは約1巻の巻物のように地図上に表示されるタイルデータです。しかし、HTTPの使用は情報漏えいの問題です。ネットワーク上の盗聴者は、あなたが見ている場所を特定でき、間違いのある情報をフィードしたり、バグを引き起こしたりする可能性があるデータを攻撃する可能性があります。

代わりにHTTPS経由でこれらのリクエストを送信するようにMapKitを強制する方法はありますか?これに関するAPIのドキュメントは不明です。

+0

アップルに報告するこれはおそらくAppleだけが修正できるものです。 –

+0

今後のiOSバージョンにのみ適用される可能性があるため、アプリの回避策も見つけたいと思います。これらのURLをマップAPIから完全に受け取っていない限り、おそらく最後にAPIレスポンスの変更になる可能性があります。 –

答えて

1

これはちょっと残酷に思えますが、あなた自身のサーバーを使うためにマップの内容を完全に置き換えることができるので、地図データを読み込むためにリンゴのサーバーとは話しません。

NSString *template = @"https://c.tile.openstreetmap.org/{z}/{x}/{y}.png"; 
overlay = [[MKTileOverlay alloc] initWithURLTemplate:template]; 
overlay.canReplaceMapContent = YES; 
[map addOverlay:overlay level:MKOverlayLevelAboveLabels]; 

またMKMapSnapshotterも安全でないかどうかを確認するためにテストすることができます。そうでなければloadTileAtPath:result:を実装するMKTileOverlayサブクラスで使用できます。

関連する問題