Я изучаю протокол 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 не задействован. Экземпляры этого класса будут архивироваться в plist, хранящемся на диске.
Безопасность, есть ли какая-либо польза от использования -decodeObjectOfClass:forKey:
, в отличие от
-decodeObjectForKey:
?