Wann soll NSSecureCoding verwendet werden?
Ich lerne über dieNSSecureCoding
von Apple in iOS 6 eingeführtes Protokoll.
Soweit ich weiß, sollte es immer dann verwendet werden, wenn eine Klasse Instanzen von sich selbst codiert / decodiert, um Substitutionsangriffe zu verhindern.
Ich frage mich, ob es angebracht wäre, es in anderen Fällen zu verwenden.
Insbesondere, wenn eine Klasse konform istNSCoding
Es wäre immer noch ratsam, die Instanzvariablen zu codieren / decodieren, im Gegensatz zur gesamten InstanzNSSecureCoding
?
Angenommen, ich habe eine Klasse, die implementiert wirdNSCoding
wie folgt
- (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;
}
und nehme auch an, dass kein XPC beteiligt ist. Instanzen dieser Klasse werden in einer auf der Festplatte gespeicherten Liste archiviert.
In Bezug auf die Sicherheit bietet die Verwendung keinerlei Vorteile-decodeObjectOfClass:forKey:
im Gegensatz zu-decodeObjectForKey:
?