2016-07-05 2 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 

이 주위에 하나의 스크롤로지도에 표시되는 타일 데이터입니다. 그러나 HTTP를 사용하면 정보 유출 문제가 발생합니다. 네트워크에서 도청하는 사람은보고있는 곳을 식별 할 수 있으며 잘못된 정보를 제공하거나 버그를 유발하려고하는 사람이 중간에 공격 할 수 있습니다.

강제로 MapKit에서 HTTPS를 통해 이러한 요청을 보내도록 할 수있는 방법이 있습니까? API 문서는 이에 대해 명확하지 않습니다.

+0

Apple에 신고하십시오. 이것은 아마도 Apple 만 수정할 수있는 것입니다. –

+0

나는 아마도 미래의 iOS 버전에만 적용될 수있는 수정책을 찾기 위해 app 해결 방법을 찾고 싶습니다. 지도 API에서 이러한 URL을 전적으로받지 못한다면 API 응답 수정 일 수 있습니다. –

답변

1

과도한 것처럼 보이지만지도 콘텐츠를 완전히 교체하여 자신의 서버를 사용할 수 있으므로지도 데이터를로드하기 위해 Apple의 서버와 통신하지 않습니다.

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 하위 클래스에서 사용할 수 있습니다.

관련 문제