Безопасное локальное хранилище UWP

При использовании локальное хранилище в UWP, после публикации приложения, может ли пользователь, устанавливающий приложение, изменить сохраненные настройки с классического рабочего стола или из командной строки?

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

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

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

Peter Torr - MSFT 03.06.2019 07:14

Я это понимаю, но для перехода в File Explorer к локальной или перемещаемой папке приложения и изменения файла требуется значительно меньше знаний, чем для отладки приложения без кода. Решение, которое я имею в виду, состоит в том, чтобы просто зашифровать файл или запись настроек. Я просто интересовался, можно ли это сделать через какой-то интегрированный API, о котором я не знал.

Igor Ševo 03.06.2019 11:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
1 158
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Is there a way to securely store settings and data within the app,without using a remote service and cryptography?

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

Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
roamingSettings.Values["exampleSetting"] = "Hello World";
// High Priority setting, for example, last page position in book reader app
roamingSettings.Values["HighPriority"] = "65";

// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite =
    new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

roamingSettings.Values["exampleCompositeSetting"] = composite;

Для получения более подробной информации обратитесь к этому документ.

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

Igor Ševo 16.05.2019 18:40
Ответ принят как подходящий

Чтобы защитить данные в состоянии покоя, вы можете использовать DataProtectionProvider API. Это не позволит случайным пользователям увидеть ваши данные, и если они изменят их, ваше приложение не сможет их расшифровать.

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