В этой статье мы рассмотрим некоторые техники, которые следует использовать при разработке IOS-приложений для того, чтобы сделать их более безопасными.
Автор: Пратик Джианчандани (Prateek Gianchandani)
В этой статье мы рассмотрим некоторые техники, которые следует использовать при разработке IOS-приложений для того, чтобы сделать их более безопасными.
Локальное хранение данных
При разработке приложений особенно важно понимать, какую информацию можно хранить локально. Как мы уже знаем, данные, которые хранятся локально, по сути, никак не защищены. Во всех подробностях этот вопрос рассматривался в двадцатой статье из этой серии.
PDKeychainBindings *bindings = [PDKeychainBindings sharedKeychainBindings];
[[[Model sharedModel] currentUser] setAuthToken:[bindings objectForKey:@"authToken"]];
Безопасность на транспортном уровне
Использование шифрования
UIImage *imageToEncrypt = [UIImage imageNamed:@"SomeImage"]; NSString *imagePath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/encryptedImage.png"];
NSData *data = UIImagePNGRepresentation(fetchedImage); NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:@"
ABC123" error:&error]; [encryptedData writeToFile:imagePath atomically:YES];
Добавление проверок для защиты от динамического анализа
Дополнительные меры безопасности
– (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers,
and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
[UIPasteboard generalPasteboard].items = nil;
}
(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url в AppDelegate
– (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
//Validate input from the url
return YES;
}