iOS9 ATS: как насчет приложений на базе HTML5?
Согласно документации из https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW14 , Apple вынуждает использовать HTTPS через HTTP в iOS 9.
Безопасность на транспорте приложений
App Transport Security (ATS) позволяет приложению добавлять объявление в свой файл Info.plist, который указывает домены, которым необходима безопасная связь. ATS предотвращает случайное раскрытие информации, обеспечивает безопасное поведение по умолчанию и легко адаптируется. Вы должны принять ATS как можно скорее, независимо от того, создаете ли вы новое приложение или обновляете существующий.
- Как рассчитать ширину текстовой строки определенного шрифта и размера шрифта?
- Отключите клавиатуру iphone
- Установка UIDatePicker в таблицу UIActionSheet
- Оверлей Android, чтобы захватить ALL touch и передать их?
- Как настроить цвет фона UITableViewCell?
Если вы разрабатываете новое приложение, вы должны использовать исключительно HTTPS. Если у вас есть существующее приложение, вы должны использовать HTTPS столько, сколько вы можете прямо сейчас, и создать план по переносу остальной части приложения как можно скорее.
Что это означает для веб-приложений, особенно. Sencha Touch и Cordova / PhoneGap основаны? Мое веб-приложение может быть настроено на любой адрес сервера, поэтому я не могу их перечислить в файл plist. Будет ли это применимо только для приложений, которые используют собственные запросы (через NSURLRequest и т. Д.)?
- Образец кода WWDC 2010
- Продолжительность анимации строки UITableView и обратный вызов завершения
- UIImageView Touch Event
- Windows эквивалент командной строки «touch»?
- Медиа-запрос, чтобы определить, является ли устройство сенсорным
- UIImagePickerController и извлечение EXIF-данных из существующих фотографий
- Переопределение выделенного выделения в UIPickerView
- Использование не работает с UITableView seperatorColor?
Если вы не уверены в том, к какому URL будет подключаться ваше приложение, или если вы подключаетесь ко многим URL-адресам, вы можете обойти ATS (безопасность транспорта приложений), добавив следующие ключи в файл info.plist.
NSAppTransportSecurity NSAllowsArbitraryLoads
Попробуйте следующее: cordova plugin add https://github.com/robertklein/cordova-ios-security.git
Он добавит следующую часть файла *-Info.plist
во время процесса сборки:
NSAppTransportSecurity NSAllowsArbitraryLoads
Как работать с SSL в iOS9, одно решение – делать так:
Как говорит Apple :
Для iOS 9 и OSX 10.11 требуется TLSv1.2 SSL для всех хостов, на которых вы планируете запрашивать данные, если вы не укажете домены исключений в файле Info.plist вашего приложения.
Синтаксис конфигурации Info.plist выглядит следующим образом:
NSAppTransportSecurity NSExceptionDomains yourserver.com NSIncludesSubdomains NSTemporaryExceptionAllowsInsecureHTTPLoads NSTemporaryExceptionMinimumTLSVersion TLSv1.1
Если вашему приложению (например, стороннему веб-браузеру) требуется подключение к произвольным хостам, вы можете настроить его следующим образом:
NSAppTransportSecurity NSAllowsArbitraryLoads
Если вам нужно это сделать, лучше всего обновить свои серверы для использования TLSv1.2 и SSL, если они этого еще не сделали. Это следует рассматривать как временное обходное решение.
На сегодняшний день в предварительной документации не упоминается ни один из этих вариантов конфигурации каким-либо конкретным способом. Как только это произойдет, я обновлю ответ на ссылку на соответствующую документацию.
Вот демонстрация (Demo1)
Apple фактически ничего не заставляет, у них просто есть инфраструктура для дефолта и, тем самым, повышает безопасность в интересах приложения и пользователей его услуг. Это означает, что до тех пор, пока гибридный инструмент не интегрирует детали в существующие продукты, необходимо внести изменения в соответствующие файлы конфигурации с некоторым пониманием деталей (см. Связанный ответ + комментарий ниже) . Проведя время с этой точной проблемой, я предлагаю сначала разрабатывать локально, разрешая произвольные нагрузки и обходя ATS. Если ATS требуется для одобрения магазина приложений, как только вы готовы начать тестирование с более широкой группой пользователей, включите ATS (и произвольные нагрузки), затем настройте исключения по умолчанию по необходимости. Основной вопрос, который необходимо задать для каждого домена, заключается в том, разрешать ли поддомены, настраивать версии TLS по мере необходимости, а также разрешать ли небезопасные http. Мое приложение имеет около 20 доменов с целью передачи других запросов другим приложениям. Если бы это был веб-браузер, у меня были бы определенные настройки для моих сервисов (которые я контролирую и знаю) и позволяю остальным быть произвольными.