티스토리 뷰

애플에서 iOS9 에 ATS 개념을 설명하면서 HTTPS의 사용을 권장했다(HTTP 쓰지말라는 말)

iOS10에 들어스면서 이젠 강압적으로 ATS를 사용하지 않은 앱은 앱스토어 배포를 리젝한다고 공표를 했다.

따라서 HTTP는 물론이고, HTTPS 일지라도 TLS 1.2 아래 버전이면 ATS 정책에 의거 통신을 할 수 없게 된다.

(출처 - http://nopdin.tistory.com/1818)


하지만, 어떠한 이유로 인해 써야만 하는 상황이 올 수 밖에없다. HTTP 통신을 아예 하지 못하는 것은 아니다.

HTTP통신을 하는 방법 중 하나는, NSAllowsArbitraryLoadsInWebContent를 YES로 하고 WKWebView를 사용하여 HTTP 통신을 하거나,

info.plist에서 App Transport Security Settings의 Exception Domains에 

ATS를 만족하지 못하는 도메인(http, 또는 https 이나 TLS1.2 버전보다 아래인 도메인)을 등록하여 사용하는 방법이 있다.


Exception Domains의 옵션으로 아래와 같이 있다. 알아서 잘 설정해주자.


  • NSExceptionMinimumTLSVersion: TLS 최소 버전을 문자열로 입력합니다. 아래 값들 중 하나를 넣을 수 있거나 생략할 수 있습니다.
    • TLSv1.0
    • TLSv1.1
    • TLSv1.2 (생략할 경우의 기본값)
  • NSExceptionRequiresForwardSecrecy: forward secrecy 라는 비밀키 암호화와 관련된 설정입니다.
  • NSExceptionAllowsInsecureHTTPLoads: HTTPS(SSL) 연결이 아니더라도 통신을 허용할 것인가를 YES 혹은 NO로 설정 할 수 있습니다.
  • NSIncludesSubdomains: 이 사이트의 하부도메인들에도 이 설정을 적용할 것인가를 YES 혹은 NO로 설정 할 수 있습니다.
  • NSThirdPartyExceptionMinimumTLSVersion: 써드파티 TLS 버전을 입력 할 수 있습니다.
  • NSThirdPartyExceptionRequiresForwardSecrecy: 역시 써드파티 Forward Secrecy 설정할 수 있습니다.
  • NSThirdPartyExceptionAllowsInsecureHTTPLoads: 역시나 써드파티 HTTPS 연결 강제를 설정합니다.



출처: http://blowmj.tistory.com/entry/iOS-iOS9-App-Transport-Security-설정법 [블로가 되어 날아보자]


테스트 할 목적 혹은 개인적인 취미로 HTTP통신을 위해 NSAllowsArbitraryLoads를 YES 사용했다면 뭐 상관없으나,

배포를 목적으로 사용할 경우 NSAllowsArbitraryLoads옵션을 NO로 해야만 한다. (기본 디폴트 값 NO)

'programming > iOS' 카테고리의 다른 글

[iOS] ATS Exception Domains 옵션 쉽게 설정 하는법  (0) 2017.03.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함