ASPX页面。textox输入(用于密码)。H 19该页面被提交给iis。H 210H 111它首先进入iis。H 212H 113到此阶段,密码以纯文本形式存储在内存中。H 214H 115现在Asp.net将其密码放到安全的iis中进行计算,该页被发送到客户端。H 218F 219代码>
来自IIS POV:
他仍然把密码看作是普通的text...isnt吗?
发布于 2012-03-18 10:15:55
根据您的故事,在SecureString中存储密码是没有意义的。它曾经作为普通字符串出现在内存中,因此将其存储在SecureString中就没有那么有用了。另外,当表单返回时,仍然会以纯文本的形式发送回所有内容。
在这种情况下,最好是保护服务器-客户端通信(即使用SSL),而不是试图保护系统免受攻击者的攻击,攻击者将访问计算机、分析内存和提取密码(!)。
发布于 2012-03-18 10:18:42
读取SecureString要复杂得多。没有简单的ToString方法,这也是为了保证数据的安全。要读取数据,C#开发人员必须直接访问内存中的数据。幸运的是,.NET框架使System.Runtime.InteropServices.Marshal类的适当成员(如SecureStringToBSTR方法)能够很好地操作SecureString对象的值。
IntPtr stringPointer = Marshal.SecureStringToBSTR(objSecureString);
string normalString = Marshal.PtrToStringBSTR(stringPointer);https://stackoverflow.com/questions/9757444
复制相似问题