Когда использовать NSSecureCoding
Я узнаю оNSSecureCoding
протокол, представленный Apple в iOS 6.
Насколько я понимаю, он должен использоваться всякий раз, когда класс кодирует / декодирует экземпляры самого себя, чтобы предотвратить атаки замены.
Мне интересно, будет ли целесообразно использовать его в других случаях.
В частности, если класс соответствуетNSCoding
путем кодирования / декодирования его переменных экземпляра, в отличие от всего самого экземпляра, было бы целесообразно реализоватьNSSecureCoding
?
Предположим, у меня есть класс, который реализуетNSCoding
как следует
- (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;
}
и предположим также, что XPC не задействован. Экземпляры этого класса будут заархивированы в списке, хранящемся на диске.
С точки зрения безопасности, есть ли польза от использования-decodeObjectOfClass:forKey:
в отличие от-decodeObjectForKey:
?