Насколько защищена информация вне экрана?

В моем приложении для iOS есть экран блокировки, который при включении покрывает весь UIScreen, Однако за пределами UIScreen у меня есть панели с конфиденциальной информацией, которые не закрыты экраном блокировки. (Эти панели можно перетаскивать, когда экран разблокирован.)

Насколько безопасно иметь информацию за пределами UIScreen границы? Может ли злоумышленник использовать какой-либо внешний дисплей, или отладчик, или какой-то другой механизм, чтобы "раскрыть" то, что находится за пределами UIScreen экран?

[Экран блокировки WKWebView который по умолчанию имеет функцию "увеличительное стекло". Я обнаружил, что при срабатывании на краях UIScreenувеличительное стекло показывает несколько пикселей того, что находится за UIScreen край. С тех пор я отключил увеличительное стекло с помощью этого ответа.]

2 ответа

"Скрывать" взгляды за кадром совсем не безопасно. Любой человек с взломанным устройством может подключиться к вашему приложению во время выполнения с помощью MobileSubstrate и вызвать [[[UIApplication sharedApplication] keyWindow] recursiveDescription] сбросить иерархию представления. Существуют также такие инструменты, как Reveal и http://sparkinspector.com/, которые предоставляют интерфейс, аналогичный отладчику представлений Xcode, для просмотра любых представлений, которые в настоящее время находятся в приложении. UIWindow,

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

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

Технически все, что находится в памяти, может быть открыто на взломанном устройстве. Скрытие чувствительных видов за пределами того, что отображается в данный момент, не является мерой безопасности. После того, как устройство будет взломано, будут открыты представления и содержимое этих представлений. Даже если у вас есть текстовое поле пароля, установленное как "secureTextEntry", и даже если вы его скрываете, содержимое может быть прочитано с помощью отладчика, прикрепленного к приложению, если текстовое поле не освобождено. И даже когда текстовое поле освобождено, память может быть выгружена, и если эта память еще не была переопределена, вы потенциально можете найти содержимое этого представления.

Теперь, если вас не беспокоит сценарий Jailbroken, и вы хотите найти только другие варианты, в которых кто-то с не взломанного устройства может исследовать представления, вам, вероятно, следует проверить специальные возможности, включенные в iOS. VoiceOver сможет считывать громкий текст, который скрыт, если доступность в этом представлении не отключена должным образом. Удаление представлений из инструментов специальных возможностей иногда сложно, поскольку изменение в родительском элементе может повлиять на все подпредставления ( см. Документацию UIAccessibility).

настройка accessibilityElementsHidden в YES в родительском представлении или isAccessibilityElement в NO по мнению, должно работать.

Другие вопросы по тегам