Я создал приложение, в котором я использовал кодировку base64 и сохранил пароль пользователя в NSUSerDefaults, но каким-то другим разработчиком iPhone ломает этот пароль. Интересно, как он мог получить данные NSUserDefaults? Кто-нибудь знает, как остановить эту критическую вещь, а также как он получил данные NSUserDefaults. Также, что лучший метод шифрования для хранения пароля пользователя в iphone?Получить NSUSerDefaults Данные с устройства
ответ
Предлагаю вам ознакомиться с SFHFKeychainUtils. Он завершает работу Keychain Services API и предоставляет очень простой интерфейс для хранения конфиденциальной информации, такой как пароли.
магазин вам пароль:
NSError * error;
[SFHFKeychainUtils storeUsername:userName andPassword:password forServiceName:@"whatever_service" updateExisting:YES error:&error];
Получит ваш пароль обратно:
NSError * error;
password= [[SFHFKeychainUtils getPasswordForUsername:userName andServiceName:@"whatever_service" error:&error] retain];
Можно также удалить сохраненное значение с помощью сообщения deleteItemForUsername, если вам необходимо войти пользователь вне.
У кого-то, у кого был сломанный iPhone, больше контроля над устройством, чем вы. Нельзя скрывать секрет, а не на флеш-диске, а не в памяти. Когда вы строите сервер, вы всегда должны предполагать, что злоумышленник может подключить вредоносного клиента. Период окончания истории.
Rook Возможно ли получить данные NSUserDefaults без вредоносного устройства? –
брелка представляет собой зашифрованный контейнер , который содержит пароль для нескольких приложений и защищенных услуг. Брелки: защищенное хранение контейнеры, что означает, что когда брелок для ключей заблокирован, никто не может получить доступ к защищенному содержимому. - Руководство по программированию ключей Keychain, Apple 2010.
Я рекомендую вам прочитать Keychain Services Tasks for iOS.
Злоумышленник с физическим доступом может просто создать резервную копию iPhone, которая включает полностью незашифрованные копии большинства файлов данных.
- 1. Как получить данные из NSUserDefaults?
- 2. NSUserDefaults не сохраняет данные
- 3. Удаление приложения с устройства не очищает NSUserDefaults
- 4. Сохранить данные с помощью NSUserDefaults
- 5. NSUserDefaults промывает данные, прежде чем я получить
- 6. Каков наилучший способ получить данные из NSUserDefaults?
- 7. NSUserDefaults физически данные
- 8. Как получить GPS-данные устройства
- 9. NSUserDefaults и сериализованные данные
- 10. Xcode: Получить данные с устройства Database
- 11. Как получить контактные данные с устройства?
- 12. Как получить данные с устройства Microsoft Kinect?
- 13. Данные NSUserDefaults не работают
- 14. Как синхронизировать данные NSUserDefaults с iCloud
- 15. Как сохранить и получить данные с помощью NSUserDefaults
- 16. Очистить данные конкретного объекта NSUserDefaults Данные
- 17. NSUserDefaults не сохранять данные (Swift)
- 18. Данные не сохраняются в NSUserDefaults
- 19. Данные не передаются через NSUserDefaults
- 20. хранить данные NSobject в Nsuserdefaults
- 21. Возможность получить исходные данные GPS из устройства
- 22. Как получить данные устройства Bluetooth в C#
- 23. Проблемы с NSUserDefaults
- 24. Как получить данные с устройства bluetooth с помощью VB.NET
- 25. Как получить данные GPS с устройства с помощью PHP?
- 26. Получить данные с устройства отпечатков пальцев с помощью PHP
- 27. Невозможно получить данные с конечного устройства xbeepro2 с помощью pic18f25k20
- 28. получить данные устройства из шлюза оплаты Braintree
- 29. Не удается получить данные из NSUserDefaults в сегодняшнее расширение (Swift)
- 30. Можно ли получить данные из NSUserDefaults после завершения приложения?
Спасибо за ответ. Существует простой вид входа в систему, и для его удобства ему не нужно будет вводить пароль снова, поэтому я сохранил пароль в NSUserdefaults. Должен ли я использовать базу данных Sqlite3? –
@ rahul-vyas Нет, я предлагаю вам использовать брелок. Я - пара строк кода (после добавления SFHFKeychainUtils.m & .h в ваш проект (я обнов свой ответ). – RedBlueThing
NSUserDefaults небезопасен, а кодировка base64 не является шифрованием. Я был бы удивлен, если ваше приложение было разрешено в магазине, если вы не используете брелок для хранения учетных данных, как я полагаю, требуется в соглашении о разработке. –