Skip to main content

App Transport Security - iOS 9

App Transport Security is a feature that improves the security of connections between an app and web services. The feature consists of default connection requirements that conform to best practices for secure connections. Apps can override this default behavior and turn off transport security.

All connections using the NSURLConnection, CFURL, or NSURLSession APIs use App Transport Security default behavior in apps built for iOS 9.0 or later, and OS X v10.11 or later. Connections that do not follow the requirements will fail.

App Transport Security Technote

When you are aware of the risks you can still completely disable ATS for your app by editing the Info.plist:

[key]NSAppTransportSecurity[/key]
[dict]
    [key]NSAllowsArbitraryLoads[/key]
    [true/]
[/dict]

To have a bit more of security you could define exceptions from the exceptions and apply ATS to specific domains only:

[key]NSAppTransportSecurity[/key]
[dict]
    [key]NSAllowsArbitraryLoads[/key]
    [true/]
    [key]NSExceptionDomains[/key]
    [dict]
        [key]example.com[/key]
        [dict]
            [key]NSExceptionAllowsInsecureHTTPLoads[/key]
            [false/]
            [key]NSIncludesSubdomains[/key]
            [true/]
        [/dict]
    [/dict]
[/dict]

Shipping an App With App Transport Security

Comments

Most Favorite Posts

Server-driven UI (SDUI): Meet Zalandos AppCraft and AirBnB Lona

A short WTF: Joe Birch:  SERVER DRIVEN UI, PART 1: THE CONCEPT Zalando seems to follow the SDUI principle as well - defining a common design language and construct the screens on the backend while displaying them natively on the clients. They even go one step further; they implemented a mighty toolset to enable non-technical stakeholders to define their own native app screens Compass: Web tooling to create screens and bind data Beetroot: Backend service that combines the screen layout definition with the data Lapis/Golem: iOS/Android UI render engines Crazy cool! Good job, guys (when you do an open-source release?) To even move faster a Flutter based UI render engine implementation was great! See also AirBnB Lona SDUI approach Building a Visual Language Why Dropbox sunsetted its universal C++ mobile project and AirBnB its React Native implementation

iOS and Android Campaign Measurement for App installs

Android: Google Play Campaign Measurement Google Play Campaign Measurement is a feature of Google Mobile App Analytics that enables the attribution of native Android app installs to advertising campaigns and other marketing efforts in your Google Analytics app reports. Verifying that your Google Play Campaign Measurement implementatin is working properly before the application is submitted to Google Play ensures that campaign measurement data is as accurate as possible at the time of launch. This guide will illustrate one means of testing a Google Play Campaign Measurement implementation. Developers Google Mobile App Tracking iOS: Cookie Tracking / Browser Identification For iOS no such standard way exists. The main workarounds involve the setting of a cookie in the ad and then opening a WebView with the ad again after install - alternate identify the device by the informations the browser publishes (IP, accept-encoding, ...). There are some rumors Apple woul...

Unity3d - 3D Game Framework

Unity 3 is a game development tool that has been designed to let you focus on creating amazing games. Unity 3d

Google Developers: Three Flaws in Software Design

Part 1: Three Flaws in Software Design - Part 1: Writing Code that isn't Needed Part 2: Not Making the Code Easy to Change Part 3: Being Too Generic Part 4: Incremental Development & Design + Wrap-up Code Simplicity Presentation
LazyPages is a highly customizable library that helps you to show a scrollable list of view controllers synchronized with an index. It is written in Swift 2.2 for iOS 8+. Like Scrollable Tabs in Android. GitHub