サーチ…


パラメーター

パラメータ詳細
NSAppTransportSecurity ATSの設定
NSAllowsArbitraryLoads どこでもATSを無効にするには、 YESに設定します。 iOS 10以降、およびmacOS 10.12以降では、アプリケーションのInfo.plistファイルに次のいずれかのキーがあると、このキーの値は無視されます。NSAllowsArbitraryLoadsInMedia、NSAllowsArbitraryLoadsInWebContent、NSAllowsLocalNetworking
NSAllowsArbitraryLoadsInMedia AV FoundationフレームワークのAPIを使用してロードされたメディアに対してATSを無効にするには、 YESに設定します。 (iOS 10+、macOS 10.12+)
NSAllowsArbitraryLoadsInWebContent YESに設定すると、NSURLSession接続に影響を与えずに、アプリケーションのWebビュー( WKWebViewUIWebViewWebView )でATSを無効にします。 (iOS 10+、macOS 10.12+)
NSAllowsLocalNetworking 非修飾ドメインおよび.localドメインへの接続を無効にする場合は、 YESに設定します。 (iOS 10+、macOS 10.12+)
NSExceptionDomains 特定のドメインの例外を設定する
NSIncludesSubdomains YESに設定すると、選択したドメインのすべてのサブドメインに例外が適用されます。
NSRequiresCertificateTransparency 既知のCTログからの有効な署名付き証明書トランスペアレンシー(CT)タイムスタンプがドメイン上のサーバー(X.509)証明書に対して提示されるようにするには、 YESに設定します。 (iOS 10+、macOS 10.12+)
NSExceptionAllowsInsecureHTTPLoads 選択したドメインでHTTPを許可するには、 YESに設定します。
NSExceptionRequiresForwardSecrecy デフォルトはYESです。 Forward Secrecyを無効にし、より多くの暗号を受け入れる場合は、 NOに設定します。
NSExceptionMinimumTLSVersion デフォルトはTLSv1.2です。可能な値は以下のとおりですTLSv1.0TLSv1.1TLSv1.2
NSThirdPartyExceptionAllowsInsecureHTTPLoads NSExceptionAllowsInsecureHTTPLoadsと似ていますが、制御できないドメインの場合
NSThirdPartyExceptionRequiresForwardSecrecy NSExceptionRequiresForwardSecrecyと似ていますが、あなたがコントロールできないドメイン
NSThirdPartyExceptionMinimumTLSVersion NSExceptionMinimumTLSVersionと似ていますが、あなたが制御できないドメイン

備考

App Transport Securityは、iOSとmacOSのセキュリティ機能です。これは、アプリケーションが安全でない接続を確立するのを防ぎます。デフォルトでは、アプリケーションはセキュアなHTTPS接続しか使用できません。

アプリケーションがHTTP経由でサーバーに接続する必要がある場合、 Info.plistで例外を定義する必要がありInfo.plist 。 (その詳細については、例を参照してください)

注: 2017年に、AppleはATSを実施します。つまり、 Info.plistでATS例外が定義されているアプリをアップロードすることはできません。良い議論をすることができ、なぜHTTPを使わなければならないのかAppleに連絡することができ、例外を定義できる可能性があります。 (出典: WWDC 2016 - セッション706

App Transport Securityの設定の詳細については、 CocoaKeysのドキュメントを参照してください

すべてのHTTPコンテンツをロードする

Appleは、iOS 9を搭載したATSを新しいセキュリティ機能として導入し、アプリとWebサービスのプライバシーとセキュリティを向上させました。デフォルトでは、ATSはHTTPS以外のすべての要求に失敗します。本番環境ではこれが本当にうまくいくかもしれませんが、テスト中に迷惑になることがあります。

ATSは、 NSAppTransportSecurityディクショナリ(Xcode Info.plistエディタのApp Transport Security Settings )を使用してターゲットのInfo.plistファイルでApp Transport Security Settingsします。すべてのHTTPコンテンツを許可するには、 Allow Arbitrary Loadsブール値( NSAllowsArbitraryLoads )を追加し、 YES設定します。プロダクションアプリにはお勧めできません.HTTPコンテンツが必要な場合は、代わりに選択的に有効にすることをおすすめします。

HTTPコンテンツを選択的にロードする

すべてのHTTPコンテンツを有効にするのと同様に、すべての設定はApp Transport Security Settingsます。 Exception Domains辞書( NSExceptionDomains )を最上位のATS設定に追加します。

すべてのドメインで、例外ドメインに辞書項目を追加します。ここで、キーは問題のドメインです。そのドメインのHTTPS要件を無効にするには、 NSExceptionAllowsInsecureHTTPLoadsYESに設定します。

エンドポイントにはSSLが必要です

iOS 9で導入されたすべてのエンドポイントは、HTTPS仕様に準拠している必要があります。
SSLを使用していないすべてのエンドポイントは、コンソールログの警告とともに失敗します。アプリケーションには、インターネット接続が失敗したように見えます。

例外を設定するにはInfo.plistファイルに次のものを置きます:

  1. 特定のドメイン(testdomain.com) のみを許可する:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
    <key>testdomain.com</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
    </dict>
</dict>

このような動作を可能にする鍵はNSExceptionAllowsInsecureHTTPLoadsです。この場合、アプリケーションは上記のドメイン(testdomain.com)のみにHTTP接続を許可し、他のすべてのHTTP接続をブロックします。

キーNSIncludesSubdomainsは、前述のドメイン(testdomain.com)のすべてのサブドメインも許可する必要があることを指定します。

  1. 任意のドメインを許可する:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

この場合、アプリは任意のドメインへのHTTP接続を許可します。 2017年1月1日現在、このフラグを使用するとApp Storeのレビューが徹底的に行われ、アプリの開発者は最初にこの例外を使用する必要がある理由を説明する必要があります。考えられる説明は次のとおりです。

  • パーソナライズされた情報を含まない暗号化されたメディアコンテンツをロードするアプリケーション。
  • 安全な接続を使用するようにアップグレードできないデバイスへの接続。
  • 別のエンティティによって管理され、セキュアな接続をサポートしていないサーバーへの接続。


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow