tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Code na maelezo zaidi katika https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
Uwekaji wa Vitu katika Maendeleo ya iOS
Katika iOS, uwekaji wa vitu unahusisha kubadilisha vitu kuwa katika muundo ambao unaweza kuhifadhiwa au kuhamasishwa kwa urahisi, na kisha kuyajenga tena kutoka katika muundo huu inapohitajika. Protokali mbili kuu, NSCoding
na NSSecureCoding
, zinawezesha mchakato huu kwa Objective-C au NSObject
subclasses, kuruhusu vitu kuwekewa katika NSData
, muundo unaofunga buffer za byte.
NSCoding
Utekelezaji
Ili kutekeleza NSCoding
, darasa lazima irithi kutoka NSObject
au iwe imewekwa alama kama @objc
. Protokali hii inahitaji utekelezaji wa njia mbili za kuandika na kusoma mabadiliko ya mfano:
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)
}
}
Kuimarisha Usalama kwa NSSecureCoding
Ili kupunguza udhaifu ambapo washambuliaji wanaingiza data katika vitu vilivyoundwa tayari, NSSecureCoding
inatoa itifaki iliyoimarishwa. Madarasa yanayokubaliana na NSSecureCoding
yanapaswa kuthibitisha aina ya vitu wakati wa ufafanuzi, kuhakikisha kwamba ni aina za vitu zinazotarajiwa pekee ndizo zinazoanzishwa. Hata hivyo, ni muhimu kutambua kwamba ingawa NSSecureCoding
inaimarisha usalama wa aina, haifanyi usimbaji wa data au kuhakikisha uadilifu wake, hivyo inahitaji hatua za ziada za kulinda taarifa nyeti:
static var supportsSecureCoding: Bool {
return true
}
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
Hifadhi Data kwa NSKeyedArchiver
NSKeyedArchiver
na mwenzake, NSKeyedUnarchiver
, zinawezesha kuandika vitu kwenye faili na baadaye kuvipata. Mekanismu hii ni muhimu kwa kuhifadhi vitu:
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
Kutumia Codable
kwa Mchakato Rahisi wa Uandishi
Protokali ya Codable
ya Swift inachanganya Decodable
na Encodable
, ikirahisisha uandishi na usomaji wa vitu kama String
, Int
, Double
, nk, bila juhudi za ziada:
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
Huu mtindo unasaidia uhamasishaji rahisi wa orodha za mali na JSON, ukiboresha usimamizi wa data katika programu za Swift.
Mbadala wa Uhamasishaji wa JSON na XML
Mbali na msaada wa asili, maktaba kadhaa za upande wa tatu zinatoa uwezo wa uhamasishaji/kuondoa JSON na XML, kila moja ikiwa na sifa zake za utendaji na maelezo ya usalama. Ni muhimu kuchagua maktaba hizi kwa makini, hasa ili kupunguza udhaifu kama mashambulizi ya XXE (XML External Entities) kwa kuunda waandishi wa habari ili kuzuia usindikaji wa vitu vya nje.
Maelezo ya Usalama
Wakati wa kuhamasisha data, hasa kwa mfumo wa faili, ni muhimu kuwa makini kuhusu uwezekano wa kuingizwa kwa taarifa nyeti. Data iliyohamasishwa, ikiwa itakamatwa au kushughulikiwa vibaya, inaweza kufichua programu kwa hatari kama vitendo visivyoidhinishwa au uvujaji wa data. Inapendekezwa kupeleka na kusaini data iliyohamasishwa ili kuboresha usalama.
Marejeleo
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.