2015-11-25 16 views
5

Ho un'app che viene aperta da un'altra app tramite uno schema URL. L'URL contiene token di iscrizione. Poiché qualsiasi app può registrare lo stesso schema URL della mia app, sono preoccupato che un'app "finta" possa fare un attacco man-in-the-middle e catturare i token di registrazione.Impedisci il dirottamento degli schemi URL iOS

La mia idea è di verificare che lo schema URL non apra un'altra app quando la mia app viene aperta per la prima volta.

Dal punto di vista della sicurezza, se lo schema URL apre la mia app per la prima volta, aprirà sempre la mia app in futuro?

risposta

2

È un vettore di attacco valido (e solitamente ignorato). Non è strettamente un attacco man-in-the-middle in quanto non inoltrerà l'URL alla tua app (non può). È quasi peggiore in quanto l'app di attacco sarebbe davvero in grado di bloccarsi e sembrerebbe che la tua app abbia ...

Un'altra app può essere installata ogni volta che l'app è in background. Tecnicamente è possibile che un aggiornamento sia rilasciato e installato per un'app esistente mentre la tua app è in esecuzione (è difficile sapere se ciò accade). Pertanto, non è sicuro testare solo quando la tua app viene aperta per la prima volta.

+0

Lo schema dell'URL non è uno schema "primo arrivato, primo servito"? – Randomblue

+0

Non sono al 100% quale sia la regola, non l'ho testata esplicitamente. Verrà installato o installato per ultimo. Quindi un'app non può inoltrarsi all'altro. – Wain

4

Come utilizzare i collegamenti universali iOS 9?

A differenza degli schemi di URL personalizzati, i collegamenti universali non possono essere rivendicati da altre app, perché utilizzano collegamenti HTTP o HTTPS standard al tuo sito web.

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

In questo modo la "tabella di invio" è sul server, in modo che nessun altra applicazione può dirottare l'URL di iscrizione. (L'invio dell'URL si basa su AppID)