セキュリティの観点から、開発用にlocalhost
をATS NSExceptionDomains
に追加することは安全ですか?すべてのコミットの前にInfo.plist
ファイルからこれらの行を削除することはあまり便利ではありません(そして忘れがちです)。
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
さらに、Appleこれによりアプリケーションを拒否できますか?
これで、ローカルアドレスに対してこれを行うことができます。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
AppleはこのキーをATS例外として祝福しました—それを使用するアプリを拒否しないと述べています。詳細はこちら: https://developer.Apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html (「ローカル」のページで検索)
アプリの製品版で必要ない場合は、2つの異なるInfo.plistファイルを使用するようにビルド構成を設定します。基本的には、plistの内部バージョンを「Internal-Info.plist」として設定し、localhostを除外することができます。次に、その除外がないプロダクション「Info.plist」を用意します。Appleアプリを現在または将来拒否する理由はありません。
ビルドのタイプに適したInfo.plistを自動的に取り込むようにビルドを構成するには:
「Info.plist」を「Internal-Info.plist」という新しいファイルにコピーし、「Info.plist」から除外を削除してください。これで問題ありません。
Appleはこれについて今あなたを拒否することができます(Appleが知っているだけです)が、2017年以降、Appleは、ATS除外の正当な理由が必要になるため、 localhost ATS要件を除外する正当な理由がない限り、今すぐ正しく設定するのが最善です。