3/3 忙しい人のためのApp Transport Security #tryswiftconf
try!Swiftのセッションまとめシリーズです。niwatakoさんの「App Transport Security for Busy Devs」についての記事になります。
資料
内容
自己紹介
ATS
- 去年のWWDCでATSの必須化が発表
ATSとは
- iOS9で登場
- サーバとの通信を安全性の高いHTTPSだけに限定
HTTPSに安全安全でないとは?
安全性の低いHTTPSに接続するには?
- NSAllowsArbitraryLoads
- ATSの全ての機能を無効化
- NSExceptionDomains
- 特定のドメインのみ例外に
- NSAllowsArbitraryLoadsForMedia
- AVFoundationの通信についてATSの制限を解除
- NSAllowsArbitraryLoadsInWebContent
- UIWebView、WKWebViewの通信についてATSの制限を解除
- NSAllowsLocalNetworking
- ローカルのホストの通信についてATSの制限を解除
- NSAllowsArbitraryLoads
自分の会社のアプリの場合
- HTTPかもしれないし、HTTPSかもしれない
- つまり、ATSすべて無効化する必要はない
- → WebViewを対象にATSを無効化するNSAllowsArbitraryLoadsInWebContentを使用
NSAllowsArbitraryLoadsInWebContentのバグ
- NSAllowsArbitraryLoadsInWebContent
- 安全性の低いHTTPSに接続できない
- OSバージョンによって挙動が異なる(バグ)
- NSAllowsArbitraryLoadsInWebContent
ATS必須化の時期
- 2016年の末と言われていたが延期になった
- 結論、今は何もしなくていい
伝えたいこと
- Appleのドキュメントを信じるだけではだめ
- 仕様と実際の動きの両方を確認した方が良い
- マイナーバージョンも含め確認した方が良い
その他このトークに関する情報源
- 忙しい人のためのApp Transport Security (LT) | try! Swift Tokyo 2017 #tryswiftconf Day2-8 聞き起こし - niwatakoのはてなブログ
- [速報レポート] try! Swift TOKYO 2017 2日目 午後Ⅰ #tryswiftconf | Developers.IO
togetter
App Transport Security for Busy Devs #tryswiftconf - Togetterまとめ