Kiedy używać NSSecureCoding
Uczę się oNSSecureCoding
protokół wprowadzony przez Apple w iOS 6.
Z mojego dotychczasowego rozumienia powinno się korzystać, gdy klasa koduje / dekoduje własne wystąpienia, aby zapobiec atakom zastępczym.
Zastanawiam się, czy właściwe byłoby użycie go w innych przypadkach.
W szczególności, jeśli klasa się zgadzaNSCoding
Kodowanie / dekodowanie zmiennych instancji, w przeciwieństwie do całej instancji samej w sobie, nadal byłoby wskazaneNSSecureCoding
?
Załóżmy, że mam klasę, która implementujeNSCoding
jak następuje
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.aString forKey:@"aMeaningfulString"];
}
- (id)initWithCoder:(NSCoder *)decoder {
if((self = [super init])) {
self.aString = [decoder decodeObjectForKey:@"aMeaningfulString"];
}
return self;
}
Przypuśćmy również, że nie dotyczy to żadnego XPC. Instancje tej klasy będą archiwizowane w plist przechowywanej na dysku.
Z punktu widzenia bezpieczeństwa, czy jest jakaś korzyść z używania-decodeObjectOfClass:forKey:
w przeciwieństwie do-decodeObjectForKey:
?