我正在实施Keychain来存储成功IAP的标志。我有一些关于安全性的问题,因为我不知道有人破解我的应用程序可以看到哪些对象。
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"theKey" accessGroup:nil];
[wrapper setObject:@"password" forKey:(id)kSecValueData];
如果我在上面的setObjectForKey
方法中写入密码,是否有人能够在可执行文件中看到密码文字或变量?当我设置这个时,是不是“赤身裸体”并且容易被邪恶的黑客抓住?
答案 0 :(得分:0)
您的安全问题是用户将更改文件,而不是阅读"尚未购买的IAP"它现在读取"已经购买了IAP"。避免这种情况的最简单方法是通过将用户的identifierForVendor存储在文件变量中来表明已购买IAP,甚至是NSUserDefault。每个设备的identifierForVendor都不同。如果你想增加安全性,那么创建一个hashForVendor的哈希值和一个秘密字符串,只有你知道"我的秘密"。