Android piraté? Toute URL peut être associée à votre application par défaut!
je déboguait un problème de lien profond dans l’application, j’ai découvert que de nombreuses applications ont un problème sur le lien profond, comme indiqué dans l’article ci-dessous.
Lorsque j’ai effectué plus d’investigation, exploré comment le résoudre, j’ai rencontré ce problème qui pourrait être une faille sur Android lui-même.
Comme nous savons que si nous voulons que notre application prenne en charge certaines URL pour supprimer le lien profond dans notre application par défaut (sans demander si elle doit s’ouvrir dans Chrome), nous pouvons le faire conformément aux recommandations du document
1 Enregistrez notre URL en conséquence avec l’hôte, le schéma, le chemin, etc., comme indiqué dans l’exemple de code ci-dessous, assurez-vous également android:autoVerify=”true”
android:autoVerify="true">
2 Configurer le assetlink.json correctement dans notre domaine hôte respectif, avec les informations pertinentes, comme indiqué ci-dessous
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:..."]
}
}]
Si tout est fait correctement, vous obtiendrez l’URL deeplink enregistrée dans votre application sans pour autant vous demandant comme ci-dessous.
Vous êtes uniquement autorisé à supprimer le lien URL enregistré
Ainsi, lorsque vous le testez, vous ne pouvez supprimer le lien profond que vous avez défini comme vos données dans votre AndroidManifest.xml fichier c’est-à-dire https://www.example.com
Si vous essayez sur une autre URL, elle ne sera pas profondément liée à votre application. C’est prévu, tout va bien.
Essayer de pirater en enregistrant plus d’URL
Même si vous essayez d’être drôle et ajoutez une autre URL populaire (par exemple Facebook, Google, Apple, CNN, etc.) comme ci-dessous, et installez l’application pour la première fois, il demandera simplement à l’utilisateur s’il veut supprimer le lien de ces URL dans votre application.
www.google.com" />
www.facebook.com" />
www.apple.com" />
www.cnn.com" />
Non seulement il n’a pas de lien par défaut dans votre application pour ces URL (puisque vous n’avez pas votre assetlink.json dans ces hôtes, il casse également votre URL officielle que vous êtes censé obtenir par lien profond.
C’est tout bon.
D’accord, faisons ce qui est légitime pour la première fois, où vous n’avez que votre URL dont vous êtes propriétaire du domaine, avec les bonnes assetlink.json Là-haut.
www.example.com" />
Vous compilez et expédiez votre application. L’utilisateur commence à cliquer dessus et l’application a été «approuvée» pour que l’URL par défaut y soit liée sans poser de question.
Expédiez une nouvelle version de l’application avec plus de domaines.
Ainsi, dans votre prochaine version de l’application, ajoute plus d’URL (même si vous ne possédez pas leur domaine)
www.google.com" />
www.facebook.com" />
www.apple.com" />
www.cnn.com" />
Compilez-le et expédiez-le.
Maintenant, l’utilisateur met simplement à niveau l’application sans la réinstaller. Cet utilisateur a déjà effectué un lien profond avec votre www.example.com
et votre application a été vérifiée
Si un lien que vous avez défini ci-dessus (par exemple Facebook, Google, Apple, CNN, etc.) est entré, et que l’utilisateur clique dessus…. Il sera automatiquement lié à votre application SANS AUCUNE VÉRIFICATION SUPPLÉMENTAIRE!
Cela signifie que si vous enregistrez de nombreux hôtes de domaine dans votre lien profond, votre application recevra de nombreuses visites redirigées!