程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Effective C#原則47:選擇安全的代碼(2)

Effective C#原則47:選擇安全的代碼(2)

編輯:關於C語言

讀操作也是完全和其它使用文件I/O相似的:

IsolatedStorageFile isoStore =
  IsolatedStorageFile.GetUserStoreForDomain( );
string[] files = isoStore.GetFileNames( "SavedStuff.txt" );
if ( files.Length > 0 )
{
 StreamReader reader = new StreamReader( new
  IsolatedStorageFileStream( "SavedStuff.txt",
  FileMode.Open,isoStore ) );
 // Several reader.ReadLines( ) calls elided.
 reader.Close ();
}

你可以獨立存儲來持久大小合適的數據元素,這些元 素可以被代碼部分信任,用於從一個安全分離的本地磁盤上的某個地方存儲和載 入信息。.Net環境為每個程序定義和限制了獨立存儲的大小。這可以預防一些惡 意的代碼占用磁盤空間,讓系統就得不可用。獨立存儲對於其它程序和其它用戶 來說是不可見的。也就是說,它不應用於要管理員手動操作才能布署或者配置設 置的情況。即使這它是隱藏的,然而,獨立存儲對於從受信任的用戶那來裡來的 非托管代碼來說也是不受保護的。不要用獨立存儲來存儲一些高度機密的內容, 除非你的程序給它加過密。

在文件系統中創建一個可能要許可安全策略 的程序集時,要獨立存儲流的內容。當你的程序集可能在web上運行,或者可能 被運行在web上的代碼訪問時,應該考慮使用獨立存儲。

你可能須要正確 的使用一個受保護的資源。一般情況下,訪問這些資源要指出你的程序要被完全 信任。唯一可選的就是完全避免使用這些受保護的資源。例如,考慮Windows的 注冊表,如果你和程序須要訪問注冊表,你必須安裝你的程序到最終用戶的機器 上,這樣才能有必須的權限來訪問注冊表。你想簡單點,從web上運行的程序是 不能建立注冊表的修改的。安全策略就應該是這樣的。

.Net的安全模型 意味著你的程序的行為是要權得進行核對的。注意你的程序所要求的權利,而且 試著最小化它們。不必要求你不使用的權利。你的程序集越是少的要求受保護資 源,那麼它們就越是可以保證安全策略異常不拋出。避免使用機密資源,如果可 能,要考慮其它可選方案。當你在某個算法上確實須要更高安全的許可時,應該 獨立這些代碼到它們自己的程序集中。

返回教程目錄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved