Friday, January 13, 2017

App Transport Security Exception using Info.plist

Here's a short snippet to allow domain exceptions in Info.plist. Method 1 is not recommended, because it will allow all domains. Method 2 is recommended.

Method 1: Not recommended (all domains are accessible) <span class="tag">&lt;plist&gt;</span><span class="pln"> </span><span class="tag">&lt;dict&gt;</span><span class="pln"> . . . </span><span class="tag">&lt;key&gt;</span><span class="pln">NSAppTransportSecurity</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;dict&gt;</span><span class="pln"> </span><span class="com">&lt;!-- Allows all connections regardless --&gt;</span><span class="pln"> </span><span class="tag">&lt;key&gt;</span><span class="pln">NSAllowsArbitraryLoads</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;true</span><span class="pln"> </span><span class="tag">/&gt;</span><span class="pln"> </span><span class="tag">&lt;/dict&gt;</span><span class="pln"> . . . </span><span class="tag">&lt;/dict&gt;</span><span class="pln"> </span><span class="tag">&lt;/plist&gt;</span>
Medhod 2: Recommended (only mysite.com is allowed) <span class="tag">&lt;plist&gt;</span><span class="pln"> </span><span class="tag">&lt;dict&gt;</span><span class="pln"> . . . </span><span class="tag">&lt;key&gt;</span><span class="pln">NSAppTransportSecurity</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;dict&gt;</span><span class="pln"> </span><span class="tag">&lt;key&gt;</span><span class="pln">NSExceptionDomains</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;dict&gt;</span><span class="pln"> </span><span class="tag">&lt;key&gt;</span><span class="pln">mysite.com</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;dict&gt;</span><span class="pln"> </span><span class="tag">&lt;key&gt;</span><span class="pln">NSExceptionAllowsInsecureHTTPLoads</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;true</span><span class="pln"> </span><span class="tag">/&gt;</span><span class="pln"> </span><span class="tag">&lt;key&gt;</span><span class="pln">NSIncludesSubdomains</span><span class="tag">&lt;/key&gt;</span><span class="pln"> </span><span class="tag">&lt;true</span><span class="pln"> </span><span class="tag">/&gt;</span><span class="pln"> </span><span class="tag">&lt;/dict&gt;</span><span class="pln"> </span><span class="tag">&lt;/dict&gt;</span><span class="pln"> </span><span class="tag">&lt;/dict&gt;</span><span class="pln"> . . . </span><span class="tag">&lt;/dict&gt;</span><span class="pln"> </span><span class="tag">&lt;/plist&gt;</span>

No comments: