ios NSUserDefaults хранит имя пользователя.Может ли пользователь редактировать это? - PullRequest
0 голосов
/ 08 февраля 2012

Сейчас у меня есть имя пользователя, хранящееся в NSUserDefaults, и пароль в цепочке для ключей. Хотя я знаю, что все хранится в виде обычного текста в NSUserDefaults, может ли конечный пользователь также изменить это сохраненное значение? Имя пользователя используется во всем приложении для получения данных с сервера. Я боюсь, что если конечный пользователь сможет изменить это значение, он сможет стать другим пользователем.

Так есть ли NSUserDefaults для чтения и записи или только для чтения конечным пользователем?

Ответы [ 2 ]

4 голосов
/ 08 февраля 2012

Это зависит.Ваш средний конечный пользователь не сможет, но обычный пользователь с Jailbroken iDevice может.

Ваш NSUserDefauls является списком, хранящимся в ~/Applications/{APPLICATION_UUID}/Library/Preferences/com.mydomain.myapp.plist в простом формате XML, что делает его очень простым дляконечный пользователь может редактировать, и, если он в первую очередь является серьезным джейлбрейком, он, вероятно, имеет на своем iPhone редактор plist для начала (iFile, iFinder и т.зашифрованный двоичный формат через fread() / fwrite() по моему мнению.

0 голосов
/ 08 февраля 2012

Краткий ответ - нет, пользователь не может изменить значения, сохраненные в NSUserDefaults.

Средний ответ, значения сохраняются в файле plist, который виден в виде обычного текста, если устройство подключено и у вас есть рабочая копия Xcode.Или каким-либо другим способом через джейлбрейк, но это, как правило, не представляет проблемы.

Что касается комментариев в принятом ответе об использовании брелка iOS, пользователь также не может изменить это.Вы можете найти множество примеров, показывающих, как сохранить имя пользователя и / или пароль с помощью файлов KeychainWrapper, предоставленных Apple.Недавно я преобразовал свое приложение из соленого / хешированного токена, сгенерированного из имени пользователя и пароля, для хранения их непосредственно в цепочке для ключей.Я думаю, что в конечном итоге это самый безопасный и безопасный способ хранения учетных данных пользователя.В любом случае, на мой взгляд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...