6.1 KiB
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
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
Om 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:
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 veiligheid met 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:
static var supportsSecureCoding: Bool {
return true
}
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
Data-argivering met 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:
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 enkodering en dekodering van voorwerpe soos String
, Int
, Double
, ens., sonder ekstra moeite fasiliteer:
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
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
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy in HackTricks wil adverteer of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks-uitrusting
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.