Изолированное недоразумение устройства хранения данных

Это - обсуждение между мной и мной для понимания Изолированной Проблемы хранения. Можно ли помочь мне убедить меня об Изолированном устройстве хранения данных?

Это - код, написанный для приложения Windows Forms (читатель), которые читают изолированное устройство хранения данных другого приложения Windows Forms (устройство записи), которое подписывается. Где безопасность то, если читатель может считать файл писателя? Я думал, что только подписанный код может получить доступ к файлу!

Если все приложения.NET рождаются равные и имеют все полномочия получить доступ к Изолированному устройству хранения данных, где безопасность затем? Если я могу установить и выполнить EXE-файл от Изолированного устройства хранения данных, почему я не устанавливаю вирус и выполняю его, я доверен для доступа к этой области. Но вирус или независимо от того, что не будет доверен для доступа к остальной части файловой системы, это только может получить доступ к памяти, и это достаточно опасно.

Я не вижу различия между использованием папки данных приложения для сохранения состояния и использования Изолированного устройства хранения данных кроме длинного противного пути!!

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

Код читателя:

 private void button1_Click(object sender, EventArgs e)
 {
     String path = @"C:\Documents and Settings\All Users\Application Data\IsolatedStorage\efv5cmbz.ewt\2ehuny0c.qvv\StrongName.5v3airc2lkv0onfrhsm2h3uiio35oarw\AssemFiles\toto12\ABC.txt";
     StreamReader reader = new StreamReader(path);
     var test = reader.ReadLine();
     reader.Close();
 }

Устройство записи:

private void button1_Click(object sender, EventArgs e)
{
    IsolatedStorageFile isolatedFile = IsolatedStorageFile.GetMachineStoreForAssembly();
    isolatedFile.CreateDirectory("toto12");

    IsolatedStorageFileStream isolatedStorage = new IsolatedStorageFileStream(@"toto12\ABC.txt", System.IO.FileMode.Create, isolatedFile);
    StreamWriter writer = new StreamWriter(isolatedStorage);
    writer.WriteLine("Ana 2akol we ashrab kai a3eesh wa akbora");
    writer.Close();
    writer.Dispose();
}

9
задан Peter Mortensen 30 December 2010 в 16:51
поделиться

2 ответа

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

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

Edit: посмотрите CLR Inside Out - Isolated Storage In Silverlight 2 и Silverlight out-of-browser apps: Local Data Store.

2
ответ дан 4 December 2019 в 14:28
поделиться

Я согласен насчет вашего "непонимания" в заголовке; я думаю, вы неправильно понимаете назначение изолированного хранилища.

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

12
ответ дан 4 December 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: