MASTG-TEST-0322 クリアテキストトラフィックを許可する App Transport Security 構成 (App Transport Security Configurations Allowing Cleartext Traffic)

概要

iOS 9 以降、App Transport Security (ATS) は URL Loading Systemarrow-up-right (通常は URLSession 経由) を使用した接続に対して、デフォルトでクリアテキスト HTTP トラフィックをブロックします。但し、アプリは Info.plist ファイルの NSAppTransportSecurity キーで設定されたいくつかの ATS 例外を通じて、依然としてクリアテキストトラフィックを送信できます。

以下の設定はクリアテキストトラフィックを許可します。

  • NSAllowsArbitraryLoads: true に設定すると、NSExceptionDomains で指定された個々のドメインを除き、ATS 制限をグローバルに無効にします。これはすべての HTTP 接続を許可します。

  • NSAllowsArbitraryLoadsInWebContent: true に設定すると、WebView からのすべての接続に対して ATS 制限を無効にします。

  • NSAllowsArbitraryLoadsForMedia: true に設定すると、AV Foundations フレームワークを通じてロードされたメディアに対してすべての ATS 制限を無効にします。

  • NSExceptionAllowsInsecureHTTPLoads: NSExceptionDomains での特定のドメインに対して true に設定すると、そのドメインへの HTTP 接続を許可します。

ATS 構成の詳細については、iOS App Transport Security を参照してください。

[!WARNING] 制限事項 ATS は URL Loading Systemarrow-up-right を介した接続にのみ適用します。Networkarrow-up-right フレームワークや CFNetworkarrow-up-right などの低レベル API は ATS 設定の影響を受けず、その設定に関わらず依然としてクリアテキストトラフィックを許可することがあります。詳細については クリアテキストトラフィックのための低レベルネットワーク API の使用 (Uses of Low-Level Networking APIs for Cleartext Traffic)arrow-up-right を参照してください。

手順

  1. アプリバンドルから Info.plist ファイルを取得します。

  2. Plist ファイルを JSON に変換する (Convert Plist Files to JSON)arrow-up-right を使用して Info.plist を読み取り可能な形式に変換します (必要に応じて)。

  3. NSAppTransportSecurity ディクショナリでクリアテキストトラフィック例外を調べます。

結果

出力には、存在する場合、クリアテキストトラフィックを許可する例外を含む、ATS 構成を含む可能性があります。

評価

クリアテキストトラフィックが許可されている場合、そのテストケースは不合格です。これは以下の いずれか の条件が満たされた場合に発生する可能性があります。

  1. NSAllowsArbitraryLoads = true であり、細粒度キー (以下の 2 ~ 4) の いずれも存在しない場合のみ (iOS 10 以降ではそれらが NSAllowsArbitraryLoads を無視するため)。

  2. NSAllowsArbitraryLoadsInWebContent = true

  3. NSAllowsArbitraryLoadsForMedia = true

  4. NSAllowsLocalNetworking = true

  5. NSExceptionDomains でのいずれかのドメインが NSExceptionAllowsInsecureHTTPLoads = true を設定している。

コンテキストに関する考慮事項:

ATS 例外はアプリのコンテキストを考慮して検討する必要があることに注意します。アプリはその本来の目的を果たすために ATS 例外を定義 しなければならない ことがあります。たとえば、ブラウザアプリは、HTTP を使用するウェブサイトを含む、任意のウェブサイトに接続する必要があります。そのようなケースでは、適切な 正当な理由を示す文字列arrow-up-right が提供されていれば、例外は許容される可能性があります。但し、Apple は、可能な限りクライアントサイド ATS 例外よりもサーバーサイドの修正を優先することを推奨しています。

Last updated