iOS App Extensions
App ekstenzije poboljšavaju funkcionalnost aplikacija omogućavajući im da komuniciraju sa drugim aplikacijama ili sistemom, pružajući prilagođene funkcije ili sadržaj. Ove ekstenzije uključuju:
Prilagođena tastatura: Nudi jedinstvenu tastaturu u svim aplikacijama, zamenjujući podrazumevanu iOS tastaturu.
Deljenje: Omogućava deljenje na društvenim mrežama ili direktno sa drugima.
Danas (Vidžeti): Pruža sadržaj ili obavlja zadatke brzo iz Pregleda danas u Centru za obaveštenja.
Kada korisnik koristi ove ekstenzije, kao što je deljenje teksta iz glavne aplikacije, ekstenzija obrađuje ovaj unos unutar svog konteksta, koristeći deljene informacije za obavljanje svojih zadataka, kako je detaljno opisano u dokumentaciji Apple-a.
Bezbednosne razmatranja
Ključni bezbednosni aspekti uključuju:
Ekstenzije i aplikacije koje ih sadrže komuniciraju putem međuprocesne komunikacije, a ne direktno.
Danas vidžet je jedinstven po tome što može zatražiti da se njegova aplikacija otvori putem određene metode.
Deljen pristup podacima je dozvoljen unutar privatnog kontejnera, ali direktni pristup je ograničen.
Određeni API-ji, uključujući HealthKit, su zabranjeni za aplikacione ekstenzije, koje takođe ne mogu pokretati dugotrajne zadatke, pristupati kameri ili mikrofonu, osim za iMessage ekstenzije.
Statička analiza
Identifikacija aplikacionih ekstenzija
Da biste pronašli aplikacione ekstenzije u izvornom kodu, pretražite NSExtensionPointIdentifier
u Xcode-u ili pregledajte paket aplikacije za .appex
fajlove koji ukazuju na ekstenzije. Bez izvornog koda, koristite grep ili SSH da biste pronašli ove identifikatore unutar paketa aplikacije.
Podržani tipovi podataka
Proverite Info.plist
fajl ekstenzije za NSExtensionActivationRule
kako biste identifikovali podržane tipove podataka. Ova postavka osigurava da samo kompatibilni tipovi podataka pokreću ekstenziju u glavnim aplikacijama.
Deljenje podataka
Deljenje podataka između aplikacije i njene ekstenzije zahteva deljeni kontejner, koji se podešava putem "App Groups" i pristupa se putem NSUserDefaults
. Ovaj deljeni prostor je neophodan za pozadinske transfere pokrenute od strane ekstenzija.
Ograničavanje ekstenzija
Aplikacije mogu ograničiti određene vrste ekstenzija, posebno prilagođene tastature, kako bi se osiguralo da rukovanje osetljivim podacima bude u skladu sa bezbednosnim protokolima.
Dinamička analiza
Dinamička analiza uključuje:
Pregledanje deljenih stavki: Povežite se sa
NSExtensionContext - inputItems
da biste videli podržane tipove podataka i poreklo.Identifikacija ekstenzija: Otkrijte koje ekstenzije obrađuju vaše podatke posmatranjem internih mehanizama, poput
NSXPCConnection
.
Alati poput frida-trace
mogu pomoći u razumevanju osnovnih procesa, posebno za one koji su zainteresovani za tehničke detalje međuprocesne komunikacije.
Reference
Last updated