Quando usar o NSSecureCoding
Estou aprendendo sobre oNSSecureCoding
protocolo introduzido pela Apple no iOS 6.
Pelo que entendi, ele deve ser usado sempre que uma classe codifica / decodifica instâncias dele mesmo, para evitar ataques de substituição.
Eu estou querendo saber se seria apropriado usá-lo em outros casos.
Especificamente, se uma classe está de acordo comNSCoding
codificando / decodificando suas variáveis de instância, ao contrário de toda a instância de si mesmo, ainda seria aconselhável implementarNSSecureCoding
?
Suponha que eu tenha uma classe que esteja implementandoNSCoding
como segue
- (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;
}
e suponha também que nenhum XPC está envolvido. Instâncias dessa classe serão arquivadas em uma plist armazenada no disco.
Segurança-sábio, há algum benefício em usar-decodeObjectOfClass:forKey:
ao contrário de-decodeObjectForKey:
?