iOS Universal Links
Introduzione
I collegamenti universali offrono un'esperienza di redirezione senza soluzione di continuità agli utenti aprendo direttamente i contenuti nell'app, evitando la necessità di una redirezione tramite Safari. Questi collegamenti sono unici e sicuri, in quanto non possono essere rivendicati da altre app. Ciò è garantito ospitando un file JSON apple-app-site-association
nella directory radice del sito web, stabilendo un collegamento verificabile tra il sito web e l'app. Nei casi in cui l'app non sia installata, Safari prenderà il controllo e indirizzerà l'utente alla pagina web, mantenendo la presenza dell'app.
Per i penetration tester, il file apple-app-site-association
è di particolare interesse in quanto potrebbe rivelare percorsi sensibili, potenzialmente inclusi quelli relativi a funzionalità non ancora rilasciate.
Analisi dell'Entitlement dei Domini Associati
Gli sviluppatori abilitano i collegamenti universali configurando i Domini Associati nella scheda Capacità di Xcode o ispezionando il file .entitlements
. Ogni dominio è preceduto da applinks:
. Ad esempio, la configurazione di Telegram potrebbe apparire come segue:
Per approfondimenti più completi, consulta la Documentazione degli sviluppatori Apple archiviata.
Se si lavora con un'applicazione compilata, i diritti possono essere estratti come descritto in questa guida.
Recupero del file Apple App Site Association
Il file apple-app-site-association
deve essere recuperato dal server utilizzando i domini specificati nei diritti. Assicurarsi che il file sia accessibile tramite HTTPS direttamente su https://<dominio>/apple-app-site-association
. Strumenti come il Validatore Apple App Site Association (AASA) possono aiutare in questo processo.
Gestione dei collegamenti universali nell'app
L'app deve implementare metodi specifici per gestire correttamente i collegamenti universali. Il metodo principale da cercare è application:continueUserActivity:restorationHandler:
. È fondamentale che lo schema degli URL gestiti sia HTTP o HTTPS, poiché gli altri non saranno supportati.
Convalida del metodo di gestione dei dati
Quando un collegamento universale apre un'app, viene passato all'app un oggetto NSUserActivity
con l'URL. Prima di elaborare questo URL, è essenziale convalidarlo e sanificarlo per prevenire rischi per la sicurezza. Ecco un esempio in Swift che illustra il processo:
Gli URL devono essere attentamente analizzati e convalidati, specialmente se includono parametri, per proteggersi da possibili spoofing o dati malformati. L'API NSURLComponents
è utile a questo scopo, come dimostrato di seguito:
Attraverso una configurazione e una convalida diligenti, gli sviluppatori possono garantire che i collegamenti universali migliorino l'esperienza dell'utente mantenendo gli standard di sicurezza e privacy.
Riferimenti
Last updated