iOS Serialisation and Encoding
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Kode en meer inligting in https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
In iOS, objekt serialisering behels die omskakeling van objekten in 'n formaat wat maklik gestoor of oorgedra kan word, en dan die heropbou daarvan uit hierdie formaat wanneer nodig. Twee hoof protokolle, NSCoding
en NSSecureCoding
, fasiliteer hierdie proses vir Objective-C of NSObject
subklasse, wat objekten toelaat om in NSData
geserialiseer te word, 'n formaat wat byte buffers omhul.
NSCoding
ImplementasieOm NSCoding
te implementeer, moet 'n klas van NSObject
erf of gemerk wees as @objc
. Hierdie protokol vereis die implementering van twee metodes vir die kodering en dekodering van instansie veranderlikes:
NSSecureCoding
Om kwesbaarhede te verminder waar aanvallers data in reeds geboude voorwerpe inspuit, bied NSSecureCoding
'n verbeterde protokol. Klasse wat aan NSSecureCoding
voldoen, moet die tipe voorwerpe tydens dekodering verifieer, wat verseker dat slegs die verwagte voorwerp tipes geïnstantieer word. Dit is egter belangrik om op te let dat terwyl NSSecureCoding
tipe veiligheid verbeter, dit nie data enkripteer of die integriteit daarvan verseker nie, wat addisionele maatreëls vereis om sensitiewe inligting te beskerm:
NSKeyedArchiver
NSKeyedArchiver
en sy teenhanger, NSKeyedUnarchiver
, stel in staat om voorwerpe in 'n lêer te kodifiseer en dit later weer te onttrek. Hierdie meganisme is nuttig om voorwerpe te behou:
Codable
vir Vereenvoudigde SerialiseringSwift se Codable
protokol kombineer Decodable
en Encodable
, wat die kodering en dekodering van voorwerpe soos String
, Int
, Double
, ens., vergemaklik sonder ekstra moeite:
Hierdie benadering ondersteun eenvoudige serialisering na en van eiendomslyste en JSON, wat datahantering in Swift-toepassings verbeter.
Benewens inheemse ondersteuning, bied verskeie derdeparty-biblioteke JSON en XML kodering/dekodering vermoëns, elk met sy eie prestasiekenmerke en sekuriteits oorwegings. Dit is noodsaaklik om hierdie biblioteke versigtig te kies, veral om kwesbaarhede soos XXE (XML External Entities) aanvalle te verminder deur parsers te konfigureer om eksterne entiteitverwerking te voorkom.
Wanneer data geserialiseer word, veral na die lêerstelsel, is dit noodsaaklik om waaksaam te wees oor die potensiële insluiting van sensitiewe inligting. Geserialiseerde data, indien onderskep of verkeerd hanteer, kan toepassings blootstel aan risiko's soos ongeoorloofde aksies of datalek. Dit word aanbeveel om geënkripteerde en ondertekende geserialiseerde data te gebruik om sekuriteit te verbeter.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)