2016-12-12 5 views
1

私の知る限り理解して2017年にAppleがInfo.plistで有効Allow Arbitrary Loadsを持っているすべてのアプリケーションを拒否しますhttps://nabla-c0d3.github.io/blog/2016/08/14/ats-enforced-2017/2017年に、ATS設定に関してHTTPSを使用しないLAN要求をどのように処理する必要がありますか?</p> <p><a href="https://i.stack.imgur.com/Iq5tl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Iq5tl.png" alt="ATS settings"></a></p> <p>も参照してください:

私たちのアプリは、ユーザーの自宅にスマートデバイスを制御しています。これは、私たちがインターネットに話すのではなく、HTTP経由でLANデバイスに話すということです。これらのデバイスはすべてHTTPSをサポートしていません。 Appleがアプリを拒否することなく、これらを設定するにはどうすればよいですか?

編集:Apple has delayed the SSL/ATS requirement to after 1/1/2017

答えて

2

ただ、正当な理由がない限り、Appleは、2016年12月31日後に提出されたアプリのためのATSを無効にするには、ATSの例外を使用しているアプリが拒否される理由を明確にするアプリ例外を使用する必要があります。私たちはまだAppleが受け入れる理由をまだ知りません。

残念ながら、ローカルネットワークリソースがiOS 9のATSによってブロックされるという素晴らしいソリューションはありません。私が見る限り、2つの選択肢があります。

  1. iOSの9のサポートを継続し、グローバルATSの例外を追加し、あなたが2016年12月31日後にアプリを提出する際に必要に地元のiOS 9とアクセスをサポートするために、Appleはあなたの正当性を受け入れることを願っていますATSを無効にしたネットワークリソース。 2014年1月1日までは、Appleが合理的であると認める種類の正当性を知るのは難しいだろうが、AppleはATS例外のアプリケーション使用を正当化するプロセスがあることを明確にした。あなたがこのルートに行くならば、私は1月初めにATS例外を使ってアプリケーションに小さな更新をプッシュしようとしています。

  2. iOS 9のサポートを無効にして、ブランケットATS例外(NSAllowArbitratyLoads)を削除し、代わりにNSAllowsLocalNetworking例外を使用して、ローカルネットワークトラフィックでのみATS保護をオフにします。これはiOS9ではサポートされていないため、新しいアプリをiOS 10にする必要があります。基本的に、NSAllowsLocalNetworking plistエントリのみがtrueに設定されたiOS9デバイスのローカルトラフィックは、ATSによってブロックされます。あなたのクライアントベースによっては、これが可能かもしれません。 iOS 9ユーザーは、iOS 10のリリース前でもアプリの最後のバージョンを手に入れることができます。

編集

のiOS 9に後方互換性を可能にしながら、Appleは、iOSの10のアプリがより安全にできるようにするためにiOSの10でいくつかのカスタムbehavourを使用しているようにあなたが含まれている場合ので、それが見えますあなたのinfo.plistにNSAllowsArbitraryLoadsNSAllowsLocalNetworkingの両方がある場合、iOS9はNSAllowsArbitraryLoadsのエントリだけを認識し、すべてのトラフィックを許可します(セキュリティの観点からは大したものではありませんが、ローカルネットワークトラフィックでは機能します)。 iOS 10では、NSAllowsLocalNetworkingを使用すると、iOS 10はNSAllowsArbitraryLoadsエントリを無視します。これにより、ローカル接続以外の接続に対してATSが強制され、ローカル接続が許可されます。明らかに、あなたはiOS 9と10の両方であなたのアプリケーションをテストすべきですが、これはまだiOS 9をサポートする必要がある場合、セキュリティの観点からは理想的です。あなたはまだAppleに正当性を提示する必要がありますこの正確なシナリオを処理するためにアップルがこの機能を搭載したのであれば、私は下位互換性が正当化されていると賭けても構わないと思う。Appleのdocumentationから

:iOSの10で

以降、およびMacOSの10.12と、次のキーのいずれかのアプリの Info.plistファイルに存在している場合は、後で、このキー の値は無視されます:

NSAllowsArbitraryLoadsForMedia 
NSAllowsArbitraryLoadsInWebContent 
NSAllowsLocalNetworking 
+0

最近の編集に感謝します。非常に参考になりました。 –

関連する問題

 関連する問題