我有一个奇怪的重复错误,我认为是与视图状态和安全设置有关。此错误每天在我客户的一个站点上出现1至6次:
来源: System.Web错误在: /detail.aspx?CaseID=1852
错误消息:无法验证数据.
堆栈跟踪: at System.Web.Configuration.MachineKeySection.**EncryptOrDecryptData(**Boolean fEncrypt,Byte[] buf,Byte[]修饰符,Int32 start,Int32 length,IVType ivType,布尔useValidationSymAlgo) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
在线研究已经导致了一个死胡同。我相信这与安全和ViewState有关。因为这是一个电子商务网站,我采取了额外的步骤,以防止一些待遇,包括XSS和CSFR。以下是我所采取的步骤:
Attacks)
),以防止某些CSFR样式Attacks)
)
该网站托管在Win2003虚拟服务器上,使用ASP.NET 3.5 SP1和AJAX。该页面没有使用缓存,我发现一些文章认为,当您将ViewStateUserKey键设置为唯一值(如SessionID )时,会出现问题。如果在浏览器中关闭cookie并尝试查看创建此错误的页面之一,则可以复制此错误。
注意,错误消息没有提到MAC失败。
发布于 2009-10-16 13:57:12
我的理论是,那些经历这个错误的人是在有代理/缓存服务器的网络上。我的解决方案是只在ViewStateUserKey是安全连接时设置它。大多数代理/缓存服务器只设置为缓存HTTP连接,而不是安全连接。
https://stackoverflow.com/questions/1574949
复制相似问题