iOS Serialisation and Encoding
Msimbo na habari zaidi katika https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
Uundaji wa Vitu katika Maendeleo ya iOS
Katika iOS, uundaji wa vitu unahusisha kubadilisha vitu kuwa muundo ambao unaweza kuhifadhiwa au kutumwa kwa urahisi, na kisha kuirudisha kutoka kwenye muundo huu unapohitajika. Itifaki mbili kuu, NSCoding
na NSSecureCoding
, hufanikisha mchakato huu kwa ajili ya darasa la Objective-C au NSObject
subclasses, kuruhusu vitu kuundwa katika NSData
, muundo ambao unafunga mabufa ya herufi.
Utekelezaji wa NSCoding
NSCoding
Ili kutekeleza NSCoding
, darasa lazima liwe limepokea kutoka kwa NSObject
au liwe limeandikwa kama @objc
. Itifaki hii inahitaji utekelezaji wa njia mbili za kuweka na kuondoa mali za kesi:
Kuboresha Usalama na NSSecureCoding
NSSecureCoding
Ili kupunguza udhaifu ambapo wadukuzi wanainjekta data kwenye vitu vilivyoundwa tayari, NSSecureCoding
inatoa itifaki iliyoboreshwa. Darasa zinazofuata NSSecureCoding
lazima thibitishe aina ya vitu wakati wa kudekodea, kuhakikisha kuwa ni aina za vitu zinazotarajiwa tu zinazotengenezwa. Walakini, ni muhimu kuelewa kuwa wakati NSSecureCoding
inaboresha usalama wa aina, haifanyi data kuwa siri au kuhakikisha uadilifu wake, hivyo inahitaji hatua za ziada za kulinda habari nyeti:
Uhifadhi wa Data na NSKeyedArchiver
NSKeyedArchiver
NSKeyedArchiver
na kifaa chake, NSKeyedUnarchiver
, inawezesha kuweka alama vitu ndani ya faili na kuvipata baadaye. Mfumo huu ni muhimu kwa ajili ya kudumuisha vitu:
Kutumia Codable
kwa Ufupishaji wa Ufumaji
Codable
kwa Ufupishaji wa UfumajiItifaki ya Codable
ya Swift inaunganisha Decodable
na Encodable
, ikirahisisha uwekaji na uondokaji wa vitu kama String
, Int
, Double
, nk., bila jitihada za ziada:
Njia hii inasaidia uwekaji wa data kwa njia rahisi kwenye orodha ya mali na JSON, ikiboresha usindikaji wa data kwenye programu za Swift.
Mbadala wa Uwekaji wa JSON na XML
Mbali na msaada wa asili, maktaba kadhaa za watu wa tatu zinatoa uwezo wa uwekaji/utoaji wa JSON na XML, kila moja ikiwa na sifa zake za utendaji na maswala ya usalama. Ni muhimu kuchagua maktaba hizi kwa umakini, hasa kwa kuzingatia kuzuiwa kwa hatari kama mashambulizi ya XXE (XML External Entities) kwa kusanidi wapanguzi ili kuzuia usindikaji wa entiti za nje.
Maswala ya Usalama
Wakati wa uwekaji wa data, hasa kwenye mfumo wa faili, ni muhimu kuwa macho kuhusu uwezekano wa kuingizwa kwa habari nyeti. Data iliyowekwa, ikiwa itatekwa au kushughulikiwa vibaya, inaweza kufichua programu kwa hatari kama vitendo visivyoruhusiwa au uvujaji wa data. Inapendekezwa kusimbwa na kusaini data iliyowekwa ili kuimarisha usalama.
Marejeo
Last updated