Извлечение строки из файла сайта? - PullRequest
0 голосов
/ 28 июня 2011

В моем приложении пользователям нужно будет ввести пароль для входа (без имени пользователя).Я подумал, что могу загрузить на сервер своего веб-сайта файл, содержащий пароль, и пользователь вводит пароль в текстовое поле в приложении, а затем приложение сравнивает текст пользователя с текстом в файле веб-сайта, чтобы узнать,одинаковы, и поэтому авторизованы для доступа к приложению.Таким образом, я мог бы легко сменить пароль без обновления приложения.

Я видел учебные пособия о том, как извлечь текст из UIWebview, но мне было интересно, как бы я это сделал без WebView в приложении.

Учебное пособие: http://www.youtube.com/watch?v=TVATwUMuRBM

Кроме того, если кто-нибудь знает лучший / более простой способ сделать это, дайте мне знать!

1 Ответ

0 голосов
/ 28 июня 2011

Я бы рекомендовал хранить данные пароля в формате JSON на сервере. Затем я бы использовал одну из многих инфраструктур и учебников JSON в Интернете, чтобы помочь реализовать загрузку данных в приложение. Есть много хороших. Я прошел через это, когда впервые работал с JSON на iOS. Там могут быть и лучшие.

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

Вместо этого я бы использовал шифрование пар открытым / закрытым ключом для данных. Каждый экземпляр приложения будет иметь закрытый ключ, и вы сохраните соответствующий открытый ключ и соответствующий идентификатор пользователя. Это может быть настроено с помощью процесса home-phone во время первоначального запуска приложений на определенном устройстве. Я бы зашифровал пароль с помощью авторизованных открытых ключей и загрузил все зашифрованные строки в файл JSON на сервере. При запуске приложение загружает зашифрованные строки пароля через JSON, дешифрует строки и проверяет известный пароль. Если правильный пароль найден, приложение авторизуется и продолжает работать.

Затем деавторизация одного пользователя выполняется путем удаления зашифрованного пароля одного пользователя с сервера. Все остальные пользователи будут продолжать работать без уведомления о новом пароле.

Дополнительный уровень безопасности можно применить, подписав данные JSON дополнительной парой открытого / секретного ключей. JSON подписывается закрытым ключом, и все приложения получают копию открытого ключа для проверки источника данных JSON.

Поскольку приложения для iOS должны иметь кодовую подпись, нарушителю будет сложно обойти эту защиту внутри приложения. Но есть уязвимость в том, что данные JSON могут быть сохранены и позже представлены приложению в атаке «человек посередине» с враждебным (к приложению) прокси-сервером. Данные JSON могут быть помечены датой, а затем подписаны, поэтому приложение может также проверять эти данные и не принимать данные JSON старше некоторого установленного времени, в зависимости от того, насколько важным является время, необходимое для отключения пользователей. Если неделя достаточно скоро, возможно, это может остаться ручным процессом, но временные рамки порядка дней или часов должны быть реализованы как автоматический процесс на веб-сервере.

Если распространение приложения увеличивается до такой степени, что данные JSON огромны и требуют слишком большой загрузки данных, данные JSON могут быть сегментированы. Несколько файлов JSON можно сохранить на сервере и получить к ним доступ, вставив строку идентификатора в имя файла. Эта строка идентификатора может быть выбрана во время начальной настройки запуска на определенном устройстве или другом механизме.

Хотя этот метод гораздо сложнее реализовать на начальном этапе, этот метод является более безопасным и простым в управлении, особенно со стороны пользователей, которым никогда не нужно иметь дело с новыми паролями авторизации.

...