"http://"의 API를 실행할 수 있도록(Swift)
소개
이 기사 에서 API 클라이언트를 구현했으므로 즉시 사용하려고했지만 다음 오류가 발생하여 떨어졌습니다.
오류와 번역을 전기합니다.
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
App Transport Security(ATS)は安全でないため、平文HTTP(http://)リソースの負荷をブロックしました。 一時的な例外は、アプリのInfo.plistファイルで設定できます。
since it does not conform to ATS policy
ATSポリシーに準拠していないため
분명히 HTTP 통신은 안전하지 않으므로 기본적으로 차단하는 것 같습니다. HTTPS 통신은 차단하지 않습니다.
Info.plist
로 설정하면 통신할 수 있다는 것이므로, 그 방법을 소개합니다.환경
해결책
솔루션은 크게 두 가지가 있습니다.
①ATS를 무효로 한다
장점
도메인을 지정하지 않고 모든 API를 사용할 수 있습니다.
HTTP/HTTPS 양쪽의 통신을 모두 허가하게 되므로, 도메인을 지정하지 않고 모든 API를 사용할 수 있습니다.
「http://」의 API를 다수 사용하는 앱에서는 이쪽의 해결책을 검토해도 좋을지도 모릅니다.
단점
안전성 저하
모든 HTTP 통신을 허용하므로 안전성이 저하됩니다.
구체적으로는 통신을 도청·조절되는 리스크가 높아집니다.
Info.plist 설정
App Transport Security Settings > Allow Arbitrary Loads 값을
YES
로 지정하면 ATS가 비활성화됩니다.②ATS를 유효한 채로 통신을 허가하는 도메인을 지정한다.
장점
안전성 저하 방지
지정한 도메인만 HTTP 통신을 허용하므로 안전성 저하를 방지합니다.
단점
도메인 지정이 번거롭다
「http://」의 API를 다수 사용하는 앱의 경우, 모든 도메인을 수동으로 지정하지 않으면 안되기 때문에 수고가 걸립니다.
Info.plist 설정
이름
키
유형
설명
App Transport Security Settings
NSAppTransportSecurity
Dictionary
ATS 설정 상단
Allow Arbitrary Loads
NSAllowsArbitraryLoads
Boolean
모든 HTTP 통신 허용
Allow Arbitrary Loads in Web Content
NSAllowsArbitraryLoadsInWebContent
Boolean
WebView 전용 모든 HTTP 통신 허용
Exception Domains
NSExceptionDomains
Dictionary
예외 도메인 상단
{도메인}
이름처럼
Dictionary
예외로 지정하는 도메인
NSIncludesSubdomains
이름처럼
Boolean
하위 도메인 포함
NSTemporaryExceptionAllowsInsecureHTTPLoads
이름처럼
Boolean
대상 도메인의 HTTP 통신 허용
NSExceptionMinimumTLSVersion
이름처럼
문자열
TBD
NSTemporaryExceptionRequiresForwardSecrecy
이름처럼
Boolean
TBD
NSRequiresCertificateTransparency
이름처럼
Boolean
TBD
예
우편번호 검색 API
htp : //지 pcぉ d. 네 bs네 t. 이. jp/
HTTP 통신 허용
이 예에서는
ibsnet.co.jp
의 하위 도메인을 포함하여 HTTP 통신을 허용합니다.결론
다음이 바람직합니다.
HTTP 통신하고 싶은 도메인이 적다→해결책②
많다→해결책①도 검토
참고 링크
Xcode - ATS를 allow로 해도 http://에 액세스 할 수 없다 | teratail
Allow Arbitrary Loads in Web Content
를 ON 으로 하면 Allow Arbitrary Loads
의 설정이 무시되게 되는 것 같습니다. Reference
이 문제에 관하여("http://"의 API를 실행할 수 있도록(Swift)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uhooi/items/68939999c2c31e5f5557텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)