2016-08-05 49 views
0

Wir haben eine App, die HTML-Inhalte in Webview zeigt. Der Inhalt von Webview stammt aus einer nicht gesicherten Domäne. Ab iOS10 soll es von gesicherter Domain aus bedient werden, also vor der Migration einige Zweifel beseitigen wollen.ATS App Transportsicherheit: HTTP-URL in Webview

  1. Muss die gesicherte HTML-Seite (https) auch CSS- und JS-Links vom gesicherten Server haben? Da einige CSS und JS vom dritten Server stammen können.

  2. Wenn die gesicherte HTML-Seite (https) in Webview geladen wird und einige Links enthält, die nicht gesichert sind (http), werden diese Links in Webview geladen, wenn der Benutzer darauf klickt?

Vielen Dank im Voraus für Ihre Hilfe.

+0

Wenn Ihre App auf nicht-HTTPS-Inhalte zugreifen, dann benötigen Sie entweder eine bestimmte Ausnahme (wenn Sie wissen, was der Server sein wird) oder eine allgemeine Ausnahme (dh ATS deaktivieren) wenn der Inhalt von überall her kommen kann. Wenn Sie SFSafariViewController verwenden, müssen Sie ATS nicht deaktivieren. Wenn Sie UIWebView oder WKWebView verwenden, dann tun Sie http://stackoverflow.com/questions/31065204/ios-9-are-webviews-exempt-from-the-app-transport-security-exceptions-ats – Paulw11

+0

Danke @ Paulw11 für Sie Antworten. SFSafariViewController ist von iOS9 verfügbar, aber wir haben einige Kunden, die noch auf iOS7-Geräten sind. Ab iOS10 wird Apple keine Ausnahme zulassen (d. H. ATS deaktivieren) und alle Anforderungen müssen gesichert werden. In Anbetracht meiner Frage, muss ich CSS, JS und Links innerhalb von HTML-Inhalten dienen müssen gesichert werden? – miOS

+0

Erstens startet es nicht in ios 10, sondern beginnt mit Apps, die nach dem Ende dieses Jahres eingereicht wurden. Es wird beim Senden erzwungen. Es ist auch nicht wahr, dass Apple keine Ausnahmen zulassen wird. Sie werden Ihnen erlauben, Ausnahmen zu setzen, aber es scheint, dass sie bei der Einreichung nach einer Rechtfertigung fragen, und sie können Ihre App zurückweisen oder nicht, wenn Ihre Begründung nicht gut genug ist. – wottle

Antwort

4

Ich habe eine schnelle Prüfung und es scheint, dass alle referenzierten Ressourcen, die von der UIWebView richtig geladen werden benötigt werden, um die Seite anzuzeigen durch die ATS Regeln halten müssen, sondern folgen auch alle Ausnahmen Sie in der Info.plist angegeben haben, für Ihre Projekt. Wenn ich versuchte, einem Link zu einer Nicht-HTTPS-Seite in der UIWebView zu folgen, gab es mir auch Fehler.

Ich denke, Ihre beste Wette wäre, die SFSafariViewController bedingt für iOS 9 Benutzer zu verwenden. Sie können weiterhin die UIWebView für die Geräte iOS 7 und iOS 8 verwenden, die ATS nicht streng erzwingen. Dies erzwingt zusätzlichen Code, sollte aber minimal sein.

Auch nur eine Klarstellung zu Apples Änderungen rund um die Durchsetzung der App Transport Security. Sie kündigten an, dass App-Transport-Sicherheit für die nach dem 31. Dezember 2016 übermittelten Apps erforderlich sein würde.. Dies bedeutet, dass die Auswirkung nicht so sehr auf dem Geräte-Betriebssystem des Benutzers beruht, sondern eher auf den Entwicklern, die die Daten einreichen. Auch Apple erlaubt immer noch Ausnahmen hinzugefügt werden, solange Sie eine Begründung haben. Wir wissen noch nicht, welche Arten von Rechtfertigungen Apple erlaubt. Schließlich erklärte Apple in ihrer WWDC-Sitzung, dass Apps immer noch eine Ausnahme zum Forward Secrecy-Teil der ATS-Anforderungen ohne eine separate Begründung enthalten könnten. Bis zum 1.1.2017 werden wir jedoch nicht sicher wissen, wie das funktionieren wird.

Edit: Es scheint Apple eine neue Ausnahme hinzugefügt Sie nicht-ATS ermöglichen Verbindungen in UIWebview und WKWebview Instanzen verwenden können. Es ist NSAllowsArbitraryLoadsInWebContent. Dies sollte genau das tun, wonach Sie suchen. Hier ist eine tolle Zusammenfassung der neuesten mit ATS: preparing for ATS in 2017.

+0

Danke @Wottle für Ihre Eingaben. – miOS