6 KiB
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Kode en meer inligting in https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
Objekt Serialisering in iOS Ontwikkeling
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
Implementasie
Om 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:
class CustomPoint: NSObject, NSCoding {
var x: Double = 0.0
var name: String = ""
func encode(with aCoder: NSCoder) {
aCoder.encode(x, forKey: "x")
aCoder.encode(name, forKey: "name")
}
required convenience init?(coder aDecoder: NSCoder) {
guard let name = aDecoder.decodeObject(forKey: "name") as? String else { return nil }
self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
}
}
Verbetering van Sekuriteit met 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:
static var supportsSecureCoding: Bool {
return true
}
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
Data Archiving with 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:
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
Gebruik van Codable
vir Vereenvoudigde Serialisering
Swift se Codable
protokol kombineer Decodable
en Encodable
, wat die kodering en dekodering van voorwerpe soos String
, Int
, Double
, ens., vergemaklik sonder ekstra moeite:
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
Hierdie benadering ondersteun eenvoudige serialisering na en van eiendomslyste en JSON, wat datahantering in Swift-toepassings verbeter.
JSON en XML Kodering Alternatiewe
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.
Sekuriteits Oorwegings
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.
Verwysings
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.