- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Silverlight 3 应用程序,它连接到服务器以执行各种操作。我的用户使用表单例份验证登录,但他们请求的操作是使用 AppPool 帐户在服务器上运行的,因此当他们进入审核日志时,他们会根据 AppPool 帐户进行记录。 PCI DSS 法规现在要求审核日志中包含用户自己的 ID,这意味着必须使用用户的信用来执行操作。现在,我可以在用户登录时保存用户的凭据,并在每个请求中提交这些凭据,并且服务器采取的操作可以使用这些凭据。但 PCI 法规规定,如果保存信用,则必须对其进行加密(以避免有人获取 PC 的内存转储并获取密码)。
我能想到的唯一方法是从服务器获取公钥并用它加密密码,然后提交加密的密码并使用私钥在服务器上解密。但 Silverlight 没有非对称加密技术。
我想我太接近问题了,一定有另一个解决方案,但我看不到它是什么。有人可以帮忙吗?
澄清
这是一个内部应用程序。到目前为止,我一直在使用通过 SSL 的 IIS Forms AuthN 到 Active Directory - 我并不担心在传输过程中保护密码,只要密码保存在客户端的内存中即可。据我了解,因为我使用的是Forms Authentication,除非我使用LogonUser,否则在服务器上不可能进行模拟,这意味着我需要服务器上的密码,所以我每次都需要传输它,所以我需要保留它在客户端、内存中,直到应用程序关闭。
最佳答案
您是说您需要存储密码以便在 silverlight 应用程序中重复使用吗?如果您担心密码出现在未加密的内存中,那么 Silverlight 那么我认为您有麻烦了。
.NET 框架确实有一个 SecureString
类,用于您概述的确切目的。
不幸的是Silverlight版本的框架没有这个类。因此,即使您要在某个时刻对密码的逻辑存储进行加密,您的代码也需要在使用它之前解密。此时已分配内存,其中包含未加密形式的字符串。
我对表单例份验证了解不多,但如果您可以将用户原则映射到域用户(您似乎表明您需要),那么您将希望在服务器上运行代码时使用模拟。
或者停止使用表单例份验证并使用 Windows 集成身份验证,您绝对可以在服务器端使用模拟。
关于security - 如何在 Silverlight 中加密用户密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230011/
我是一名优秀的程序员,十分优秀!