iOS Universal Links

Support HackTricks

Introduction

Universele skakels bied 'n naatlose herleiding ervaring aan gebruikers deur inhoud direk in die app te open, wat die behoefte aan Safari-herleiding omseil. Hierdie skakels is uniek en veilig, aangesien dit nie deur ander apps geclaim kan word nie. Dit word verseker deur 'n apple-app-site-association JSON-lêer op die webwerf se wortelgids te huisves, wat 'n verifieerbare skakel tussen die webwerf en die app tot stand bring. In gevalle waar die app nie geïnstalleer is nie, sal Safari oorneem en die gebruiker na die webblad lei, terwyl die app se teenwoordigheid gehandhaaf word.

Vir penetrasietoetsers is die apple-app-site-association lêer van besondere belang, aangesien dit sensitiewe paaie kan onthul, moontlik insluitend dié wat verband hou met nie-vrygestelde funksies.

Analyzing the Associated Domains Entitlement

Ontwikkelaars aktiveer Universele Skakels deur die Gekoppelde Domeine in Xcode se Vermoëns-tabblad te konfigureer of deur die .entitlements lêer te ondersoek. Elke domein is voorafgegaan deur applinks:. Byvoorbeeld, Telegram se konfigurasie mag soos volg verskyn:

<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:telegram.me</string>
<string>applinks:t.me</string>
</array>

Vir meer omvattende insigte, verwys na die argief Apple Developer Documentation.

As jy met 'n gecompileerde toepassing werk, kan regte soos uiteengesit in hierdie gids onttrek word.

Herwinning van die Apple App Site Association Lêer

Die apple-app-site-association lêer moet van die bediener verkry word met die domeine wat in die regte gespesifiseer is. Verseker dat die lêer via HTTPS direk by https://<domain>/apple-app-site-association toeganklik is. Gereedskap soos die Apple App Site Association (AASA) Validator kan in hierdie proses help.

Hantering van Universele Skakels in die App

Die app moet spesifieke metodes implementeer om universele skakels korrek te hanteer. Die primêre metode om na te kyk is application:continueUserActivity:restorationHandler:. Dit is van kardinale belang dat die skema van die URL's wat hanteer word HTTP of HTTPS is, aangesien ander nie ondersteun sal word nie.

Validasie van die Data Handler Metode

Wanneer 'n universele skakel 'n app oopmaak, word 'n NSUserActivity objek aan die app oorgedra met die URL. Voor die verwerking van hierdie URL, is dit noodsaaklik om dit te valideer en te saniteer om sekuriteitsrisiko's te voorkom. Hier is 'n voorbeeld in Swift wat die proses demonstreer:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
// Check for web browsing activity and valid URL
if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL {
application.open(url, options: [:], completionHandler: nil)
}

return true
}

URLs moet sorgvuldig geparseer en gevalideer word, veral as hulle parameters insluit, om te beskerm teen potensiële spoofing of verkeerd gevormde data. Die NSURLComponents API is nuttig vir hierdie doel, soos hieronder gedemonstreer:

func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL,
let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true),
let path = components.path,
let params = components.queryItems else {
return false
}

if let albumName = params.first(where: { $0.name == "albumname" })?.value,
let photoIndex = params.first(where: { $0.name == "index" })?.value {
// Process the URL with album name and photo index

return true

} else {
// Handle invalid or missing parameters

return false
}
}

Deur nette konfigurasie en validasie kan ontwikkelaars verseker dat universele skakels die gebruikerservaring verbeter terwyl sekuriteit en privaatheidsstandaarde gehandhaaf word.

Tools

  • GetUniversal.link: Help om die toetsing en bestuur van jou app se Universele Skakels en AASA-lêer te vereenvoudig. Voer eenvoudig jou domein in om die integriteit van die AASA-lêer te verifieer of gebruik die pasgemaakte dashboard om skakelgedrag maklik te toets. Hierdie hulpmiddel help jou ook om te bepaal wanneer Apple jou AASA-lêer volgende sal indekseer.

References

Support HackTricks

Last updated