iOS UIPasteboard
Deljenje podataka unutar i između aplikacija na iOS uređajima olakšano je mehanizmom UIPasteboard
, koji je podeljen u dve osnovne kategorije:
Sistemski opšti pasteboard: Koristi se za deljenje podataka sa bilo kojom aplikacijom i dizajniran je da trajno čuva podatke preko restartovanja uređaja i deinstalacija aplikacija, funkcija koja je dostupna od iOS 10.
Prilagođeni / Imenovani pasteboard-ovi: Namijenjeni su deljenju podataka unutar aplikacije ili sa drugom aplikacijom koja deli isti ID tima, i nisu dizajnirani da opstanu izvan životnog veka procesa aplikacije koja ih kreira, u skladu sa promenama uvedenim u iOS 10.
Bezbednosna razmatranja igraju značajnu ulogu prilikom korišćenja pasteboard-ova. Na primer:
Ne postoji mehanizam za korisnike da upravljaju dozvolama aplikacije za pristup pasteboard-u.
Da bi se smanjio rizik od neovlašćenog praćenja pasteboard-a u pozadini, pristup je ograničen na vreme kada je aplikacija u prvom planu (od iOS 9).
Korišćenje imenovanih pasteboard-ova sa trajnim podacima se ne preporučuje zbog problema privatnosti.
Funkcija Univerzalnog Clipboard-a predstavljena sa iOS 10, koja omogućava deljenje sadržaja između uređaja putem opšteg pasteboard-a, može biti upravljana od strane programera kako bi postavili istek podataka i onemogućili automatski prenos sadržaja.
Važno je osigurati da se osetljive informacije ne čuvaju slučajno na globalnom pasteboard-u. Pored toga, aplikacije treba da budu dizajnirane tako da spreče zloupotrebu podataka sa globalnog pasteboard-a za neželjene akcije, a programeri se ohrabruju da implementiraju mere za sprečavanje kopiranja osetljivih informacija na clipboard.
Statistička Analiza
Za statičku analizu, pretražite izvorni kod ili binarni fajl za:
generalPasteboard
kako biste identifikovali korišćenje sistemskog opšteg pasteboard-a.pasteboardWithName:create:
ipasteboardWithUniqueName
za kreiranje prilagođenih pasteboard-ova. Proverite da li je omogućena trajnost, iako je ovo zastarelo.
Dinamička Analiza
Dinamička analiza uključuje hakovanje ili praćenje određenih metoda:
Pratite
generalPasteboard
za sistemsku upotrebu.Pratite
pasteboardWithName:create:
ipasteboardWithUniqueName
za prilagođene implementacije.Posmatrajte pozive zastarele metode
setPersistent:
kako biste proverili postavke trajnosti.
Ključni detalji za praćenje uključuju:
Imena pasteboard-ova i sadržaje (na primer, provera za stringove, URL-ove, slike).
Broj stavki i tipovi podataka prisutni, koristeći provere standardnih i prilagođenih tipova podataka.
Opcije isteka i samo-lokalno pregledom metode
setItems:options:
.
Primer korišćenja alata za praćenje je objection-ov pasteboard monitor, koji proverava generalPasteboard svakih 5 sekundi za promene i prikazuje nove podatke.
Evo jednostavnog primera JavaScript skripte, inspirisanog pristupom objection-a, za čitanje i beleženje promena sa pasteboard-a svakih 5 sekundi:
Reference
Last updated