iOS Universal Links

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Introduction

Universal links hutoa uzoefu wa uelekezaji usio na mshono kwa watumiaji kwa kufungua moja kwa moja maudhui katika programu, bila ya kuhitaji uelekezaji wa Safari. Viungo hivi ni vya kipekee na salama, kwani haviwezi kudaiwa na programu nyingine. Hii inahakikishwa kwa kuhifadhi faili ya apple-app-site-association ya JSON katika saraka ya mizizi ya tovuti, ikianzisha kiungo kinachoweza kuthibitishwa kati ya tovuti na programu. Katika hali ambapo programu haijasanidiwa, Safari itachukua jukumu na kumwelekeza mtumiaji kwenye ukurasa wa wavuti, ikihifadhi uwepo wa programu.

Kwa wapimaji wa udukuzi, faili ya apple-app-site-association ni ya umuhimu maalum kwani inaweza kufichua njia nyeti, huenda ikijumuisha zile zinazohusiana na vipengele ambavyo havijachapishwa.

Kuchambua Haki za Domains Zinazohusishwa

Wakuu wa programu wanawezesha Universal Links kwa kuunda Domains Zinazohusishwa katika tab ya Uwezo ya Xcode au kwa kukagua faili ya .entitlements. Kila domain inaanzishwa na applinks:. Kwa mfano, usanidi wa Telegram unaweza kuonekana kama ifuatavyo:

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

Kwa maelezo zaidi ya kina, rejelea archived Apple Developer Documentation.

Ikiwa unafanya kazi na programu iliyokusanywa, ruhusa zinaweza kutolewa kama ilivyoelezwa katika hiki kiongozi.

Kurejesha Faili la Apple App Site Association

Faili la apple-app-site-association linapaswa kurejeshwa kutoka kwa seva kwa kutumia maeneo yaliyoainishwa katika ruhusa. Hakikisha faili inapatikana kupitia HTTPS moja kwa moja kwenye https://<domain>/apple-app-site-association. Zana kama Apple App Site Association (AASA) Validator zinaweza kusaidia katika mchakato huu.

Programu lazima itekeleze mbinu maalum ili kushughulikia universal links kwa usahihi. Mbinu kuu ya kutafuta ni application:continueUserActivity:restorationHandler:. Ni muhimu kwamba mpango wa URLs zinazoshughulikiwa ni HTTP au HTTPS, kwani zingine hazitasaidiwa.

Kuthibitisha Mbinu ya Kushughulikia Data

Wakati link ya universal inafungua programu, kitu cha NSUserActivity kinapitishwa kwa programu na URL. Kabla ya kushughulikia URL hii, ni muhimu kuthibitisha na kusafisha ili kuzuia hatari za usalama. Hapa kuna mfano katika Swift unaoonyesha mchakato:

swift
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 zinapaswa kuchambuliwa na kuthibitishwa kwa makini, hasa ikiwa zinajumuisha vigezo, ili kujilinda dhidi ya uwezekano wa udanganyifu au data isiyo sahihi. API ya NSURLComponents ni muhimu kwa ajili hii, kama inavyoonyeshwa hapa chini:

swift
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
}
}

Kupitia mipangilio na uthibitisho wa makini, waendelezaji wanaweza kuhakikisha kwamba viungo vya ulimwengu vinaboresha uzoefu wa mtumiaji huku wakihifadhi viwango vya usalama na faragha.

Zana

  • GetUniversal.link: Inasaidia kurahisisha upimaji na usimamizi wa Viungo vya Ulimwengu wa programu yako na faili ya AASA. Ingiza tu kikoa chako ili kuthibitisha uhalali wa faili ya AASA au tumia dashibodi maalum ili kupima tabia ya kiungo kwa urahisi. Zana hii pia inakusaidia kubaini wakati Apple itakapofanya utafutaji wa faili yako ya AASA.

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks