2016-10-27 5 views
6

Apple은 NSAllowArbitraryLoads이 곧 작동하지 않는다고 발표했습니다. 따라서, 아이폰 OS 10, 나는 나의의 Info.plist이 있습니다이있는 UIWebView 내 API 요청 및 콘텐츠를 작동iOS 9 및 iOS 10의 앱 전송 보안 문제

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>myAPIdomain</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
      </dict> 
     </dict> 
     <key>NSAllowsArbitraryLoadsInWebContent</key> 
     <true/> 
    </dict> 

. 그러나 iOS9에서 NSAllowsArbitraryLoadsInWebContent은 지원되지 않으며 iOS 9 지원을 위해 NSAllowsArbitraryLoads을 포함하는 것이 좋습니다. 하지만 이것이 내 NSExceptionDomains 설정보다 우선 적용될 것으로 생각하십니까? 내 API 및 UIWebView에 대한 HTTP 요청을 iOS 9 및 iOS 10에서 모두 사용할 수 있으며 Apple의 규칙에 따라 계속 수행 할 수 있습니까? 아이폰 OS 9 및 아이폰 OS 10을 지원하는 편집

: 당신은 HTTPS를 지원하기 위해 (TLS 1.2)을하지 않으려면

<key>NSAppTransportSecurity</key> 
     <dict> 
      <key>NSExceptionDomains</key> 
      <dict> 
       <key>myAPIdomain</key> 
       <dict> 
        <key>NSIncludesSubdomains</key> 
        <true/> 
        <key>NSExceptionAllowsInsecureHTTPLoads</key> 
        <true/> 
       </dict> 
      </dict> 
      <key>NSAllowsArbitraryLoadsInWebContent</key> 
      <true/> 
      <key>NSAllowsArbitraryLoads</key> 
      <true/> 
     </dict> 
+1

iOS 10 이전 버전을 지원하는 경우 NSAllowsArbitraryLoads를 사용해야합니다. 예를 들어 iOS 9 및 10에 적용됩니다. 귀하의 검토 노트 왜'NSAllowsArbitraryLoads'가 필요합니까? https가 작동하는 것으로 알고있는 특정 도메인이있는 경우 해당 도메인에 대한 예외를 추가하여 빠른 응답을 위해 https – Paulw11

+0

@ Paulw11Thanks를 활성화 할 수 있습니다. 즉, NSAlowsArbitraryLoadsInWebContent와 NSAllowsArbitraryLoads를 내 info.plist에 추가하기 만하면됩니까? – chengsam

+0

예, 맞습니다. – Paulw11

답변

1
<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 

당신은 위의 조건을 사용할 수 있습니다. 그러나 임시 수정이 될 수 있도록해야합니다. 2017 년 초부터 애플은 https (TLS 1.2)를 필수 항목으로 설정합니다.

+0

사실이 아닙니다. 'NSAllowsArbitraryLoads'를 계속 사용할 수는 있지만 이유가 무엇인지 설명해야합니다. – Paulw11

+0

Apple은 2017 년부터 NSAllowsArbitraryLoads를 엄격하게 사용합니다.하지만 iOS 9도 지원하고 싶습니다. iOS 9를 지원하려면 'NSAllowsArbitraryLoads'가 필요합니다. – chengsam

+0

또한 임베디드/IoT 장치와 같이 TLS를 지원하지 않는 장치가 많이 있습니다. – Paulw11