/iOS 📱

[iOS] HTTP 통신 허용

아렉스_Arex 2023. 11. 4. 17:05
반응형

안녕하세요 아렉스입니다 ! :D

 

iOS 9부터 HTTP가아닌 HTTPS로의 접근만 허용하였기 때문에 HTTP로 접근 하기위해서는 설정이 필요하다.

Apple 에서 앱 자체의 보안성을 위해 ATS(App Transport Security)라는 정책을 통하여

iOS9 버전 이후 부터는 보안에 취약한 네트워크를 차단 시킨다. *상세 내용은 하단 참고링크에서 확인해보세요

 

1.  모든 HTTP통신 허용

info.plist에서 APP Transport Security Settings -> Allow Arbitray Loads 를 YES로 변경 해준다

 

XML 코드

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

 

 

2. 특정 도메인만 선택적으로 HTTP통신 허용

info.plist에서 APP Transport Security Settings -> Exception Domains 예외 처리할 도메인의 주소를 입력

도메인 입력시 주의사항은 lowercase, Domain name, IP address, or IP address range 을 사용해야해요

입력한 도메인의 타입을 Dictionary로 변경 해준후 하위 항목을 추가해줘야해요

 

사용하는 하위 항목 목록은 네가지입니다.

1. NSExceptionAllowsInsecureHTTPLoads, 2. NSIncluedsSubdomains 순으로 가장 많이 쓰이는 듯 합니다

 

  • NSIncluedsSubdomains
  • NSExceptionAllowsInsecureHTTPLoads
  • NSExceptionMinimumTLSVersion
  • NSExceptionRequiredForwardSecrecy

 

 

NSExceptionAllowsInsecureHTTPLoads: 도메인에 대하여 HTTP 접속을 허용 할것인가? -> YES

NSIncluedsSubdomains: 해당 도메인의 서브 도메인 까지 설정에 포함 할 것인지 -> YES

 

 

 

XML 코드

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>naver.com</key>
        <dict>
            <key>NSIncluedsSubdomains</key>
            <true/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

 

 

참고

https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity/

 

NSAppTransportSecurity | Apple Developer Documentation

A description of changes made to the default security for HTTP connections.

developer.apple.com

https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity/nsexceptiondomains

 

NSExceptionDomains | Apple Developer Documentation

Custom App Transport Security (ATS) configurations for named domains.

developer.apple.com

https://m.boostcourse.org/mo326/lecture/20810

 

iOS 앱 프로그래밍

부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다.

m.boostcourse.org