Cos*_*sta 9 .net c# windows asp.net security
这是我和我之间为了解隔离存储问题而进行的讨论.你能帮我说服隔离存储吗?
这是为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();
}
Run Code Online (Sandbox Code Playgroud)
作家:
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();
}
Run Code Online (Sandbox Code Playgroud)
Con*_*cht 12
我同意你对标题中的"误解"; 我认为你误解了隔离存储的目的.
据我了解了"隔离"并不能意味着"其他程序不能访问私有存储设备".它意味着一个"沙箱",可以为您的低信任程序提供一个可以在没有权限写入其他地方时保存数据的地方.
当然,假设您有足够的权限访问该位置,您可以使用读卡器代码访问硬盘驱动器上的任何(已知)位置。
没有适用于IsolatedStorage 区域的特殊权限,但有一些规则适用于按照预期使用方式使用IsolatedStorage 的低信任应用程序。如果您想保密,绝对没有什么可以阻止您对存储在那里的内容进行加密。
编辑:查看CLR Inside Out - Silverlight 2 中的隔离存储和Silverlight 浏览器外应用程序:本地数据存储。
归档时间: |
|
查看次数: |
6719 次 |
最近记录: |