iOS UIPasteboard
Udostępnianie danych wewnątrz i między aplikacjami na urządzeniach iOS jest ułatwione przez mechanizm UIPasteboard
, który dzieli się na dwie główne kategorie:
Systemowy schowek ogólny: Służy do udostępniania danych z dowolną aplikacją i jest zaprojektowany do przechowywania danych po restarcie urządzenia i odinstalowaniu aplikacji, funkcja dostępna od iOS 10.
Niestandardowe / Nazwane schowki: Są przeznaczone do udostępniania danych w ramach aplikacji lub z inną aplikacją, która ma ten sam identyfikator zespołu, i nie są zaprojektowane do przechowywania poza czasem życia procesu aplikacji, który je tworzy, zgodnie z wprowadzonymi zmianami w iOS 10.
Rozważania dotyczące bezpieczeństwa odgrywają istotną rolę podczas korzystania ze schowków. Na przykład:
Nie ma mechanizmu umożliwiającego użytkownikom zarządzanie uprawnieniami aplikacji do dostępu do schowka.
Aby zmniejszyć ryzyko nieautoryzowanego monitorowania schowka w tle, dostęp jest ograniczony do czasu, gdy aplikacja jest w pierwszym planie (od iOS 9).
Zaleca się unikanie używania trwałych nazwanych schowków na rzecz kontenerów współdzielonych ze względów prywatności.
Funkcja Uniwersalny Schowek wprowadzona wraz z iOS 10, umożliwiająca udostępnianie treści między urządzeniami za pomocą schowka ogólnego, może być zarządzana przez deweloperów w celu ustawienia wygaśnięcia danych i wyłączenia automatycznego transferu treści.
Zapewnienie, że wrażliwe informacje nie są przypadkowo przechowywane w globalnym schowku jest kluczowe. Ponadto aplikacje powinny być zaprojektowane tak, aby zapobiegać nadużyciom danych z globalnego schowka do niezamierzonych działań, a deweloperów zachęca się do wprowadzenia środków zapobiegających kopiowaniu wrażliwych informacji do schowka.
Analiza statyczna
W analizie statycznej wyszukaj w kodzie źródłowym lub binarnym:
generalPasteboard
aby zidentyfikować użycie systemowego schowka ogólnego.pasteboardWithName:create:
ipasteboardWithUniqueName
do tworzenia niestandardowych schowków. Sprawdź, czy włączona jest trwałość, chociaż jest to przestarzałe.
Analiza dynamiczna
Analiza dynamiczna polega na hakowaniu lub śledzeniu konkretnych metod:
Monitoruj
generalPasteboard
dla użycia ogólnego w systemie.Śledź
pasteboardWithName:create:
ipasteboardWithUniqueName
dla niestandardowych implementacji.Obserwuj wywołania metody
setPersistent:
do sprawdzenia ustawień trwałości.
Kluczowe szczegóły do monitorowania obejmują:
Nazwy schowków i zawartość (na przykład sprawdzanie ciągów znaków, adresów URL, obrazów).
Liczba elementów i typy danych obecne, wykorzystując sprawdzenia standardowych i niestandardowych typów danych.
Opcje wygaśnięcia i lokalne poprzez sprawdzenie metody
setItems:options:
.
Przykładem narzędzia do monitorowania jest monitor schowka objection, który sprawdza schowek ogólny co 5 sekund w poszukiwaniu zmian i wypisuje nowe dane.
Oto prosty przykładowy skrypt JavaScript, inspirowany podejściem objection, do odczytywania i rejestrowania zmian ze schowka co 5 sekund:
Odnośniki
Last updated