加密ViewState的解密

时间:2011-12-21 16:06:43

标签: asp.net .net viewstate

简要背景:我有两步登录页面,在步骤1之后将一次性代码发送到用户的电子邮件。我不需要在第2步以外的任何地方使用此代码。我搜索并决定将原始代码存储到Encrypted ViewState中。所以问题是:安全性是否安全?是否有可能在客户端解密加密的viewstate并从那里获取代码? (当然,我的意思是真正加密的viewstate,而不仅仅是base64ed)。

5 个答案:

答案 0 :(得分:1)

ViewState可以解码:

工具1:View State decoder
工具2:Http Fox
工具3:Fiddler

答案 1 :(得分:1)

我的理解是使用machine.config中的MachineKey将ViewState序列化为base-64编码的字符串。为了让客户端(我猜javascript)解码,你不必暴露MachineKey吗?这根本不会好。

答案 2 :(得分:0)

可以在给定足够时间和足够样本集的情况下解密任何内容。 ViewState也不完全安全。如果您有不希望陷入潜在攻击者手中的信息,那么您绝对应该将其排除在ViewState之外。

答案 3 :(得分:0)

就我个人而言,我不会推荐它。 如果您的用户在通过电子邮件发送一次性代码后但在使用之前丢失了他们的互联网连接,您将如何应对?

答案 4 :(得分:0)

加密和解码是两回事。 出于安全目的,Base64对Base64编码的字符串进行解码不是必需的。 解密加密字符串需要密钥。

首先编码,然后加密。