3

我一直在尝试浏览我的几个 C# 库和一个使用它们的 WPF 应用程序,并将纯文本字符串密码替换为SecureString. 我确实必须SecureString在某些地方将 a 转换回常规字符串以与我无法控制的其他库/Web 服务进行交互,但我想尽量减少我这样做的数量。我也试图按照这篇文章来了解如何正确地做到这一点。有没有一种简单的方法可以从我的代码中监视哪些字符串最终在内存中浮动?我想知道有多少弱点,可以这么说,我的代码中有关于敏感数据在内存中以纯文本形式存在的问题。

4

1 回答 1

2

您可以检查的一件事是,您的明文密码是否由库保存,通过添加对它的弱引用,并查看需要多长时间才能消失。您可以检查是否有助于不时进行一些强制垃圾收集。但避免在生产代码中执行强制 GC,尤其是在服务器上。

但这只是问题的一半:它主要取决于其他库如何处理您的字符串。如果他们将密码嵌入到其他字符串中并保持引用,那么它将在内存中不安全,而您无法控制它。

于 2011-01-04T22:09:49.417 回答