iOS9 lädt keine unsicheren Ressourcen von einer sicheren Seite (SSL / HTTPS)
Ich versuche eine Seite zu laden in UIWebView auf iOS9 mit https://- URL. Die Seite geladen enthält die CSS-und Bilder von einem nicht sicheren server.
E. g. die Seite geladen ist: https://www.example.com/ umfasst stylesheet http://www.example.com/style.css und Bild http://www.example.com/image.jpg
Alles funktioniert, wenn die original-Seite geladen wird, die über unsichere verbindungen (normales http). Alles funktioniert auch auf iOS8 sowohl über HTTPS und HTTP.
Habe ich eingestellt NSAppTransportSecurity zu NSAllowsArbitraryLoads in der Anwendung-PLIST-Datei:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Obwohl beim laden der Seite via HTTPS, die Bilder geladen sind OK, aber die CSS-Dateien nicht. Scheint, wie UIWebView Blöcke laden unsicher-Ressourcen über eine sichere Seite.
Gibt es irgendeine Einstellung UIWebViewdie es ermöglichen das laden von CSS über unsichere Verbindung?
InformationsquelleAutor der Frage UrK | 2015-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht im Zusammenhang mit ATS. WebKit erzwingt eine mixed-content-Richtlinie, die verbietet den Zugriff auf bestimmte Klassen von "aktiven" Inhalte (JS, CSS, usw) geladen werden, über eine unsichere Verbindung, wenn der host-Seite wird https.
Wenn Sie prüfen, Ihre Seite im Bereich "Informationen" sehen Sie dies in der Fehler gemeldet panel.
Follow-up: Sie können sich nicht ausschalten, mixed-content-blocking. So dass unsichere CSS-oder JS-verringert die Sicherheit der gesamten Seite an, dass der am wenigsten sichere Ressource. Die Lösung, wenn Sie laden muss, css - /js-über-http wird für das laden der gesamten Seite über http. So wird die Benutzeroberfläche vom Anwender gesehen korrekt widerspiegelt, die Sicherheit des Inhalts.
InformationsquelleAutor der Antwort Oliver
In Ihrem info.plist müssen Sie den folgenden App-Transport-Sicherheit-Tasten:
Hoffentlich dies sollte für Sie arbeiten.
InformationsquelleAutor der Antwort ske57
App-Transport-Security - überarbeitet iOS9 release. Jetzt an Ihre Anwendung sicher ist, von den un-sichere Verbindung. Und iOS Kräfte, um die Verbindung sicher ist. Dies können Konflikte sein, in Ihrem Fall.
Vom Apple-Dokumentation
So, ich denke, dies kann ein Problem beim laden
.css
- Datei für web-Seiten.So geben Sie einen Versuch geben Sie Ihre Domäne in
info.plist
und überprüfen Sie, dass.css
Dateien geladen sind oder nicht.Edit:
Rampenlicht: Sie benötigen, um mehr hinzuzufügen-keys hier in
info.plist
.Blick auf diese Taste
NSThirdPartyExceptionAllowsInsecureHTTPLoads
dies ermöglicht eine service Domäne, die nicht der Kontrolle durch den Entwickler und fügen Sie eine Ausnahme von Transport layer, by pass unsichere Ressourcen.Die Struktur für das hinzufügen von Schlüsseln für App-Transport-Security - unter:
Weitere details und Erklärungen über alle Tasten überprüfen Sie diese Hinweis - App-Transport-Sicherheits-Hinweis
InformationsquelleAutor der Antwort Kampai
Auf Xcode 8.3.3 (8E3004b)
Es wurde geändert,
App Transport Security Settings
>Allow Arbitrary Loads in Web Content
>YES
InformationsquelleAutor der Antwort ytbryan
Ich verwende webkit-tool aber ich kann nicht den link zu öffnen, die ssl nicht zulassen, dass (einige https-links) und es ist eine Arbeit auf swift4 durch diesen code (Sie müssen erklären, Delegierter, bisher)
InformationsquelleAutor der Antwort Totoro Nopparat