Что на самом деле видит клавиатура на iPhone
Расширение клавиатуры читает то текстовое поле, к которому оно прицеплено, и почти ничего больше. Где именно проходит граница и почему «может наблюдать текст» — это другой вопрос, чем «может куда-то его отправить».
Беспокойство обоснованное, а ответ почти никогда не дают аккуратно. Обычно смешивают две вещи: что клавиатура способна наблюдать и способна ли она отправить наблюдаемое куда-либо. Это отдельные вопросы с отдельными ответами.
Что iOS передаёт расширению
Расширение клавиатуры — отдельный процесс, который iOS запускает, когда текстовое поле получает фокус. Оно получает очень узкую полосу: текст непосредственно до и после курсора в этом поле и тип поля — почта, число, URL, пароль. Больше ничего.
На практике: то, что вы печатаете, клавиатура видит. Иначе она не смогла бы ни исправлять, ни подсказывать.
Что остаётся недоступным
- Другие приложения. Клавиатура работает в песочнице и не видит ни одного приложения, кроме поля, к которому прицеплена в этот момент.
- Экран. Она не может прочитать то, что находится над полем, и не может делать снимки экрана.
- Поля пароля. В защищённых полях iOS всегда показывает системную клавиатуру, а не вашу. Это правило системы, а не вежливость приложения.
- Буфер обмена — пока клавиатура его явно не прочитает; с iOS 16 система показывает уведомление, когда что-то это делает.
- Контакты, фото, геопозиция, микрофон. Потребовались бы те же разрешения, что и любому другому приложению.
Полный доступ — вот настоящая граница
Без «Разрешить полный доступ» у расширения клавиатуры **нет никакого сетевого соединения**. Оно может наблюдать, но не может ничего вынести наружу. И не может читать общее хранилище со своим приложением-контейнером.
Здесь и лежит ответ на исходный вопрос. Без полного доступа «что оно может отправить» отвечается словом «ничего», независимо от того, что оно видит. Двери наружу просто нет.
С полным доступом она есть. Поэтому смотреть надо не на то, может ли клавиатура читать текст — могут все, — а на то, просит ли она полный доступ и зачем.
Зачем он бывает нужен по делу
Есть безобидные причины: тактильная отдача, системные звуки, обмен настройками с приложением-контейнером, исправление на сервере. Дело не в том, что полный доступ подозрителен, а в том, что он — единственная дверь, и стоит знать, открыта ли она.
Проверить можно в любой момент: Настройки → Основные → Клавиатура → Клавиатуры → коснитесь клавиатуры. Переключатель там. Выключите — и клавиатура продолжит работать, если только она от него не зависит.
Как проверить самому
- Выключите полный доступ и пользуйтесь клавиатурой неделю. Всё, что продолжит работать, никогда не ходило через сеть.
- Посмотрите в Настройки → Конфиденциальность и безопасность, нет ли у приложения-контейнера разрешений, которых вы не ожидали.
- Обратите внимание, появляется ли уведомление о буфере обмена при вставке. Если оно выходит само, что-то читает буфер.
Kibo полностью работает без полного доступа. Звуки, подсветка и оформления живут внутри самого расширения; сеть для этого не нужна.
Частые вопросы
Может ли клавиатура видеть мои пароли?
Нет. В защищённых полях iOS всегда показывает системную клавиатуру, а не стороннюю. Это правило системы, а не решение конкретного приложения.
Что именно даёт полный доступ?
Он открывает расширению сеть и общее хранилище с приложением-контейнером. Без него клавиатура не может ничего отправить наружу, что бы она ни видела.
Видит ли клавиатура, что в других приложениях?
Нет. Она видит только поле, к которому прицеплена, и текст вокруг курсора. Всё остальное на экране ей недоступно.
Попробуйте на своей клавиатуре
Kibo — бесплатная клавиатура для iPhone с настоящим механическим звуком клавиш, набором тем и эффектами RGB-подсветки. Без аккаунта, без рекламы, и работает даже с выключенным полным доступом.