Являются ли ошибки пользователя и ApplicationSupportDirectory безопасными для внешних манипуляций?

#ios #swift #iphone #nsuserdefaults

#iOS #swift #iPhone #nsuserdefaults

Вопрос:

Я использую стандартные UserDefaults и стандартные applicationSupportDirectory :

 userDefaults.set(level, forKey: solvedLevel)

let fileURL = try FileManager.default
    .url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    .appendingPathComponent("somethingToSave.json")
try JSONEncoder().encode(myObject)
    .write(to: fileURL)
 

Мне интересно, защищены ли эти файлы от внешних манипуляций. Может ли пользователь (с джейлбрейком и без него) изменять содержимое файлов, например, для изменения текущего уровня или файла json?

Для каталога поддержки приложений я обнаружил, что содержимое не отображается для пользователей (я полагаю, что это верно только для отсутствия джейлбрейка?).

Для пользовательских настроек по умолчанию я нашел здесь только «Соображения о песочнице». Но я предполагаю, что это верно только для устройств без джейлбрейка?

Комментарии:

1. Пользователь имеет права root на взломанном устройстве, поэтому он может изменить буквально все, что захочет. На устройстве, не взломанном джейлбрейком, изменять эти файлы сложно, но это не совсем невозможно. Почему вас это волнует? В общем, если вам приходится не доверять пользователю, вы также можете абсолютно не полагаться на то, что его устройство делает то, что вы думаете, что оно делает.

2. У меня есть данные, которые находятся между «должны быть на 100% безопасными» и «нет проблем, если все это видят», поэтому мне было бы все равно, если бы только пользователи на джейлбрейкнутых устройствах могли их видеть / изменять, но, думаю, тогда я зашифрую их, чтобы убедиться, что это безопасно.