безопасность клавиатуры iPhone, - PullRequest
2 голосов
/ 23 декабря 2009

Я хотел бы отключить автоматический захват текста ОС, если вы введете UITextField / UITextView ОС захватить этот текст (если он не найден в его словаре) в вашем приложении, он будет сохранен как обычный текст в dynamic-text.dat файл в / root / библиотека / клавиатура

Теперь, если вы откроете и прочитаете этот файл, вы легко сможете прочитать то, что набрали в своем приложении.

Мое требование: как я могу отключить эту функцию, чтобы в моем приложении ОС не записывала набранный текст в этот файл?

Вы можете проверить это даже на iPhone Simualtor

Ответы [ 3 ]

8 голосов
/ 24 декабря 2009

В симуляторе, если у меня было UITextField, установленное на Безопасный (с отключенным автозаполнением, хотя это должно быть по умолчанию), я никогда не видел текст, набранный в ~ /Library/Application Support/iPhone Simulator/User/Library/Keyboard/dynamic-text.dat, хотя UITextField для параметра автозаполнения текст в итоге оказался там.

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

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

Теперь я заметил, что если я попробую UITextView вместо UITextField, то в этом случае даже отключение автокоррекции не остановит запись текста. Это похоже на упущение, а не на выбор дизайна. Обходным путем может быть использование UITextField, но это не всегда возможно ... Я бы подал Radar на это в Apple.

Я также могу убедиться, что в SpyPhone нет общих паролей, которые я использую (в Safari или приложениях), поэтому их нет в кэше. Но практически любое приложение, собирающее пароли, использует для этого UITextField.

1 голос
/ 23 декабря 2009

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

0 голосов
/ 23 декабря 2009

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

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