2016-12-23 2 views
0

ich getestet Universal-Verbindungen in iOS, indem Sie auf den Flugmodus drehen und sah, dass die korrekte Anwendung (statt einer Website)Werden universelle Links in iOS zwischengespeichert? Arbeiten sie offline?

Dies zeigt ein gewisses Maß an „Caching“ die apple-app-site-association geöffnet wurde.

Ich möchte das Ausmaß bestimmen, auf die diese zwischengespeichert wird, so kann ich

  • bestimmen, welche UX Grenzfälle gibt es (zB Offline-für x Tage)
  • Welche Sicherheitsüberlegungen sind (zB MITM/SSLStrip + .nun bekannt/URL)

usw.

Im Idealfall möchte ich Details haben, wenn eine zusätzliche Logik (bedingtes Caching wenn HTT verwendet wird PS eingesetzt, DNSSec, etc.)

Antwort

5

Das genaue Verhalten hier ist (absichtlich?) Unklar von Apple. Hier ist meine persönliche Erfahrung, die ich teilweise aus der offiziellen Dokumentation und teilweise aus der Unterstützung tausender Apps bei der Implementierung von Universal Links unter Branch.io gewonnen habe.

  • Die apple-app-site-association Datei wird zwischengespeichert einmal, wenn die App zum ersten Mal installiert wird.
  • Wenn dieses erste Kratzen fehlschlägt, wird es in fast allen Situationen nicht erneut versucht. Die einzige Ausnahme ist, wenn die anfängliche Rückgabe ein 5xx-Fehler ist, in welchem ​​Fall eine begrenzte Anzahl von Wiederholungen auftreten kann. Dies ist nicht gut dokumentiert und wird in der Universal Links-Dokumentation überhaupt nicht behandelt. Sie können eine Erwähnung in der Shared Web Credentials docs finden.
  • Die Datei ist nicht überprüft überhaupt, wenn ein Universal Link geöffnet ist. Aus diesem Grund können Sie das Verhalten von Universal Links im Flugzeugmodus aktivieren.
  • Die Datei läuft nicht ab. Sobald es zwischengespeichert ist, bleibt es dauerhaft so lange wie die App installiert ist.
  • Die Datei wird erneut überprüft, wenn ein App-Update installiert wird.
  • Die Datei muss über eine gültige SSL-Verbindung unter https://example.com/apple-app-site-association oder https://example.com/.well-known/apple-app-site-association erreichbar sein. Wenn es Umleitungen jeglicher Art gibt, schlägt dies fehl.
  • Es ist theoretisch möglich, die Anfrage zu MITM zu verarbeiten, wenn Sie ein neues SSL-Zertifikat direkt auf dem betreffenden Gerät installieren können. Beispielsweise verwendet Charles Proxy diesen Ansatz zum Debuggen. Ich habe noch nie gesehen oder gehört, dass dies ausgenutzt wird, und der Schaden wäre ziemlich begrenzt, da die Domain immer noch in der App selbst angegeben werden muss.
+0

Alex, ich würde Branch.IO für mein Projekt in Betracht ziehen, aber unter keinen Umständen können meine Daten zu Ihren Servern reisen. Wenn Sie eine eher private Lösung hätten, könnte mich die Filiale – LamonteCristo

+0

interessieren. Das hängt sehr davon ab, was Sie als "Daten" einstufen würden. Wir haben eine Reihe von [hochkarätigen Marken] (https://branch.io/partners/), die den Branch Service nutzen, daher werden Datenschutz und Sicherheit sehr ernst genommen. Ein gängiger Ansatz besteht darin, die Verknüpfung als Übermittlungsmechanismus für ein verschlüsseltes Token zu verwenden, das auf die Daten in Ihrem eigenen Back-End verweist, anstatt die Daten selbst in der Verknüpfung zu speichern. Fühlen Sie sich frei, [in Kontakt treten] (https://support.branch.io/support/tickets/new), wenn Sie durch irgendwelche spezifischen Bedenken sprechen möchten! –

Verwandte Themen