Уязвимые данные: NSString VS NSMutableString (iPhone)

У меня есть некоторые уязвимые данные, которые я хочу очистить непосредственно после использования. В настоящее время уязвимые данные в форме NSString. NSString находится в моем неизменном понимании, означая, что я не могу действительно очистить данные. NSMutableString кажется более соответствующим, тем не менее, поскольку это изменяемо и имеет методы как replaceCharactersInRange и deleteCharactersInRange. Я не знаю о деталях реализации так интересно, служил ли NSMutableString моей цели?

6
задан Brian Tompsett - 汤莱恩 5 November 2015 в 14:32
поделиться

1 ответ

Я бы опасался, что NSMutableString попытается оптимизировать и оставить строку в памяти. Если вы хотите больше контроля, попробуйте выделить собственную память и создать из нее NSString. Если вы сделаете это, то сможете перезаписать память до того, как освободите ее.

char* block = malloc(200);
NSString* string = [[NSString alloc] initWithBytesNoCopy:length:encoding:freeWhenDone];
//use string
memset(block, 0, 200);// overwrite block with 0
[string release];
free(block);
4
ответ дан 17 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: