SecureString安全吗?

时间:2009-05-14 07:41:22

标签: .net security

是否有关于以安全方式实际使用SecureString的指导?我没有看到有任何方法甚至可以创建安全字符串,因为在某些时候你需要从文本框输入它。

5 个答案:

答案 0 :(得分:9)

SecureString的目的是加密内存中数据的存储。这可以防止明文内存扫描。如果在分页操作期间将持有字符串的内存部分移动到交换文件,这可能更为重要。

这有点像汽车的方向盘弯锁。它不会阻止你的汽车被一个有决心的人偷走,但它肯定会扼杀机会主义的小偷。

答案 1 :(得分:5)

一切都是为了减少攻击面。它不会神奇地使您的应用程序100%安全,但它肯定有帮助。

答案 2 :(得分:3)

使用hawkeye等工具,调试器可以访问机器的任何人都可以轻松使用该字符串。实际上,community notes on MSDN明确了这一点。

答案 3 :(得分:1)

可能不想使用SecureString。看起来PG可能实际上不支持它,甚至将来也不会支持它 - https://github.com/dotnet/apireviews/tree/master/2015-07-14-securestring

答案 4 :(得分:0)

即使字符串的内容必须来自用户输入,如果值包含敏感信息,仍然值得使用SecureString。当您的应用程序读取文本框的内容时,请尽早将值放入SecureString。正如Mehrdad所说,在这种情况下,它不是100%安全,但它比不使用SecureString更强大更安全。