Guide Deep Link Security

Configurer des Deep Links sûrs sur iOS et Android

La vérification du domaine ne valide pas chaque route ; tout lien reste une entrée non fiable.

LaunchLint Academy

18 min de lectureVérifié par l’équipe éditoriale de LaunchLint
Domaine vérifié reliant des routes iOS et Android sûres à l'app
Universal Links et Android App Links relient HTTPS à une app vérifiée sans valider le contenu de la route.
TL;DR

La réponse courte

  • Universal Links et Android App Links relient HTTPS à une app vérifiée sans valider le contenu de la route.
  • Traitez chaque lien comme une entrée non fiable, limitez les destinations et exigez authentification et confirmation pour les actions sensibles.
  • Cette checklist n'est pas un exercice unique. Exécutez-la avant le premier upload, après chaque changement pertinent de dépendance ou configuration et juste avant la publication. Développement, produit et responsable de la console évaluent le même build. Les signaux statiques sont reproductibles, mais ne prouvent ni le runtime ni les réponses backend. Ajoutez des tests de l'artefact signé, les déclarations officielles et une décision tracée.

1. Inventorier liens et menaces

Listez schemes, domaines, chemins, paramètres et actions sensibles.

Traitez inventorier liens et menaces comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de inventorier liens et menaces identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

2. Établir la confiance

Associated Domains et intent filters utilisent domaine et identité corrects.

Traitez établir la confiance comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de établir la confiance identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

3. Publier les associations

AASA et `assetlinks.json` exigent contenu, HTTPS, identité et cache corrects.

Traitez publier les associations comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de publier les associations identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

4. Valider les entrées

Normalisez l'URL, refusez les paramètres inconnus et autorisez les écrans prévus.

Traitez valider les entrées comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de valider les entrées identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

5. Protéger les actions

Un lien ne déclenche seul ni paiement, ni suppression, ni privilège.

Traitez protéger les actions comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de protéger les actions identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

6. Prévoir les fallbacks

Couvrez app absente, token expiré, mauvais compte, offline et ancienne version.

Traitez prévoir les fallbacks comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de prévoir les fallbacks identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

7. Séparer les environnements

Staging ne revendique ni liens ni tokens de production.

Traitez séparer les environnements comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de séparer les environnements identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

8. Tester la matrice

Couvrez démarrage froid, background, réinstallation, navigateurs, messages et redirects.

Traitez tester la matrice comme une propriété vérifiable du candidat exact. Reliez la décision au fichier, au champ du store ou à un test reproductible. Séparez résultat attendu et observé, nommez un responsable et stoppez la publication tant qu'une contradiction de sécurité ou de review subsiste.

Preuves de validation de la release

  • État de production de tester la matrice identifié
  • Fichier ou champ responsable relié
  • Contrôle rejoué sur un appareil propre
  • Écarts iOS et Android documentés
  • Chaque question a responsable et date
  • Preuve sans secret ni donnée personnelle

Questions fréquentes

Sont-ils sûrs automatiquement ?

Non. Ils vérifient domaine et app, pas l'autorisation.

Supprimer les schemes ?

Préférez HTTPS vérifié et validez strictement le reste.

Magic link connecte-t-il ?

Seulement avec token court, unique et validé serveur.

LaunchLint ouvre-t-il les liens ?

Non. Il vérifie la configuration statique.

Sources officielles

Cet article s’appuie sur les sources officielles ci-dessous. Les règles peuvent évoluer : vérifiez leur version actuelle avant chaque soumission.