iOS Serialisation and Encoding
Kode en meer inligting in https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
Objekserialisering in iOS-ontwikkeling
In iOS behels objekserialisering die omskakeling van objekte na 'n formaat wat maklik gestoor of oorgedra kan word, en dan die herkonstruksie daarvan uit hierdie formaat wanneer dit nodig is. Twee hoofprotokolle, NSCoding
en NSSecureCoding
, fasiliteer hierdie proses vir Objective-C of NSObject
subklasse, wat objekte kan serialiseer na NSData
, 'n formaat wat bytebuffers omhul.
NSCoding
-implementering
NSCoding
-implementeringOm NSCoding
te implementeer, moet 'n klas van NSObject
erf of gemerk word as @objc
. Hierdie protokol vereis die implementering van twee metodes vir die enkodeer en dekodeer van instansie-variables:
Verbetering van veiligheid met NSSecureCoding
NSSecureCoding
Om kwetsbaarheden te verminder waar aanvallers data in reeds geconstrueerde objekte inspuit, bied NSSecureCoding
'n verbeterde protokol. Klasse wat voldoen aan NSSecureCoding
moet die tipe van objekte verifieer tydens dekodering, om te verseker dat slegs die verwagte objek tipes geïnstantieer word. Dit is egter belangrik om op te let dat terwyl NSSecureCoding
tipe veiligheid verbeter, dit nie data enkripsie of die versekering van integriteit verseker nie, en dus addisionele maatreëls nodig is om sensitiewe inligting te beskerm:
Data-argivering met NSKeyedArchiver
NSKeyedArchiver
NSKeyedArchiver
en sy eweknie, NSKeyedUnarchiver
, maak dit moontlik om voorwerpe in 'n lêer te enkodeer en later te herwin. Hierdie meganisme is nuttig vir die volharding van voorwerpe:
Gebruik van Codable
vir Vereenvoudigde Serialisering
Codable
vir Vereenvoudigde SerialiseringSwift se Codable
protokol kombineer Decodable
en Encodable
, wat die enkodering en dekodering van voorwerpe soos String
, Int
, Double
, ens., sonder ekstra moeite fasiliteer:
Hierdie benadering ondersteun reguit serialisering na en vanaf eiendomlyste en JSON, wat datahantering in Swift-toepassings verbeter.
JSON en XML-koderingsalternatiewe
Afgesien van ingeboude ondersteuning, bied verskeie derdeparty biblioteke JSON- en XML-kodering/ontkodering, elk met sy eie prestasiekenmerke en veiligheidsoorwegings. Dit is noodsaaklik om hierdie biblioteke sorgvuldig te kies, veral om kwesbaarhede soos XXE (XML External Entities) aanvalle te verminder deur ontleders te konfigureer om eksterne entiteitsverwerking te voorkom.
Veiligheidsoorwegings
Wanneer data geserialiseer word, veral na die lêersisteem, is dit noodsaaklik om waaksaam te wees oor die moontlike insluiting van sensitiewe inligting. Geserialiseerde data, as dit onderskep of verkeerd hanteer word, kan toepassings blootstel aan risiko's soos ongemagtigde aksies of datalekke. Dit word aanbeveel om geserialiseerde data te versleutel en te onderteken om die veiligheid te verbeter.
Verwysings
Last updated