我有一个Silverlight业务应用程序。我想存储用户登录系统时输入的用户名和密码。
有没有人有关于如何安全存储这些数据的指示,提示等?我想将其存储为加密但我不确定在哪里存储密码/盐,将它存储在客户端代码中是否安全?我猜它不会是因为这是发送给客户的。
我通常会使用Windows Data Protection API (DPAPI)来加密数据,这在Silverlight中是否可行?
该应用程序将使用Silverlight 4在浏览器中运行。
更新
我在服务器端验证用户。目前我存储在服务器端加密的用户名和密码。我在客户端需要它们的原因是在使用Perpetuum Report Viewer时,如果报告包含子报告或具有钻取功能,则会从其凭据中提示用户。我不希望用户需要再次输入他们的凭证,唯一的方法是在客户端提供他们。
答案 0 :(得分:1)
在客户端存储该信息绝不安全。 Silverlight总是可以反向引擎,你可以很难为用户/黑客获取它,但它永远不会100%安全。
以下是关于在Silverlight中使用AES算法加密/解密数据的好文章: http://www.davidezordan.net/blog/?p=202
答案 1 :(得分:0)
为什么你不在服务器端存储合理的东西?
Silverlight组件可以反向设计或/和修改。
让用户输入密码并将其加密发送到服务器端。在服务器端,然后检查密码是否正确。
无需在silverlight控件中存储密码。
答案 2 :(得分:0)
存储的替代方法可能是使用LocalMessageSender
和LocalMessageReceiver
(某种形式的加密可能是谨慎的)来在从同一域运行的Silverlight应用程序实例之间传递凭据。