The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 SecureString 類別保護你的字串值

我們其實可以透過許多工具取得 .NET 應用程式執行時在記憶體中的資料,例如:WinDbgDebug Diagnostic Tool。而當你在 .NET 程式中需要將一些較機密的資料暫存在變數(物件)時,若單純的使用 System.String 類別建立執行個體(Instance)儲存資料,就很容易被一些除錯工具或傾印(dump)工具取得原始資料,原因是 System.String 類別是不變的(immutable),且當不再需要它時也無法透過程式排程進行記憶體回收。所以當你使用 System.String 類別儲存文字內容在記憶體中,就很難保證在物件不用了之後能夠即時在記憶體中刪除,這樣的程式就有被資訊揭露(Information Disclosure)的安全風險。

... 繼續閱讀 ...