iOS UIPasteboard
Deljenje podataka unutar i između aplikacija na iOS uređajima olakšano je mehanizmom UIPasteboard
, koji je podeljen u dve glavne kategorije:
Sistemsku opštu međuspremnik: Ovo se koristi za deljenje podataka sa bilo kojom aplikacijom i dizajnirano je da zadrži podatke čak i nakon ponovnog pokretanja uređaja i deinstalacije aplikacija, funkcija koja je dostupna od iOS 10.
Prilagođeni / imenovani međuspremnici: Ovi su specifično za deljenje podataka unutar aplikacije ili sa drugom aplikacijom koja deli isti tim ID, i nisu dizajnirani da traju duže od trajanja procesa aplikacije koja ih kreira, u skladu sa promenama uvedenim u iOS 10.
Bezbednosna razmatranja igraju značajnu ulogu prilikom korišćenja međuspremnika. Na primer:
Ne postoji mehanizam za upravljanje dozvolama aplikacija za pristup međuspremniku.
Da bi se smanjio rizik od neovlašćenog praćenja međuspremnika u pozadini, pristup je ograničen na trenutke kada je aplikacija u prvom planu (od iOS 9).
Korišćenje trajnih imenovanih međuspremnika se ne preporučuje zbog briga o privatnosti.
Universal Clipboard funkcija uvedena sa iOS 10, koja omogućava deljenje sadržaja između uređaja putem opšteg međuspremnika, može se upravljati od strane programera kako bi se postavila isteka podataka i onemogućio automatski prenos sadržaja.
Osiguranje da osetljive informacije nisu nenamerno sačuvane na globalnom međuspremniku je ključno. Pored toga, aplikacije bi trebale biti dizajnirane da spreče zloupotrebu podataka globalnog međuspremnika za nenamerne radnje, a programeri se podstiču da implementiraju mere za sprečavanje kopiranja osetljivih informacija u međuspremnik.
Staticka analiza
Za statičku analizu, pretražujte izvorni kod ili binarni fajl za:
generalPasteboard
kako biste identifikovali korišćenje sistemske opšte međuspremnika.pasteboardWithName:create:
ipasteboardWithUniqueName
za kreiranje prilagođenih međuspremnika. Proverite da li je trajnost omogućena, iako je ovo zastarelo.
Dinamička analiza
Dinamička analiza uključuje povezivanje ili praćenje specifičnih metoda:
Pratite
generalPasteboard
za sistemsku upotrebu.Pratite
pasteboardWithName:create:
ipasteboardWithUniqueName
za prilagođene implementacije.Posmatrajte pozive zastare metode
setPersistent:
kako biste proverili postavke trajnosti.
Ključni detalji koje treba pratiti uključuju:
Imena međuspremnika i sadržaj (na primer, proveravanje stringova, URL-ova, slika).
Broj stavki i tipovi podataka prisutni, koristeći standardne i prilagođene provere tipa podataka.
Opcije isteka i lokalno samo inspekcijom metode
setItems:options:
.
Primer korišćenja alata za praćenje je objectionov monitor međuspremnika, koji proverava generalPasteboard svake 5 sekundi za promene i ispisuje nove podatke.
Evo jednostavnog primera JavaScript skripte, inspirisane pristupom objection-a, za čitanje i logovanje promena iz međuspremnika svake 5 sekundi:
References
Last updated