【问题标题】:Isolated Storage misunderstanding隔离存储误区
【发布时间】:2011-01-27 02:32:56
【问题描述】:

这是我和我之间的讨论,以了解 Isolated Storage 问题。你能帮我说服我使用独立存储吗?

这是为 Windows 窗体应用程序(读取器)编写的代码,该应用程序读取另一个已签名的 Windows 窗体应用程序(写入器)的隔离存储。如果读者可以阅读作者的文件,安全性在哪里?我以为只有签名的代码才能访问该文件!

如果所有 .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();
}

【问题讨论】:

    标签: c# .net asp.net windows security


    【解决方案1】:

    我同意你在标题中的“误解”;我认为您误解了隔离存储的目的。

    据我了解,“隔离”确实不是意味着“其他程序无法访问的私有存储”。这意味着一个“沙盒”,为您的低信任程序提供一个可以在可能无权写入其他地方时保存数据的地方。

    【讨论】:

      【解决方案2】:

      当然,您可以使用您的阅读器代码到达硬盘驱动器上的任何(已知)位置,前提是您有足够的权限访问该位置。

      IsolatedStorage 区域没有应用特殊权限,但有一些规则适用于使用IsolatedStorage 的低信任应用程序的预期使用方式。如果您想保密,绝对没有什么可以阻止您加密存储在那里的内容。

      编辑:查看CLR Inside Out - Isolated Storage In Silverlight 2Silverlight out-of-browser apps: Local Data Store

      【讨论】:

      • 不过,将文件保存到应用数据和隔离存储之间没有区别,因为默认情况下,您可以在没有权限的情况下将文件保存到应用数据文件夹。
      • 嗯……你似乎还是有点没抓住重点?隔离存储旨在用于对文件系统没有开放访问权限的低信任 Silverlight 应用程序,如文件读取代码所示。检查我的编辑以获取一些有用的链接。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多