可以将__VIEWSTATE和__EVENTVALIDATION用于研究以破坏Web应用程序吗?

时间:2011-03-09 08:28:04

标签: c# asp.net viewstate

我现在正在学习ASP.NET,我对__VIEWSTATE和__EVENTVALIDATION感到有点困惑。

  1. 是否可以读取这两个项目的值,以了解应用程序的内部结构并可能对其进行操作。例如。人们写道__VIEWSTATE包含有关未通过POSTBACK发回的元素属性的信息,例如标签。那么是否有可能操纵应用程序中的标签值以使其显示错误的信息?

  2. 是否可以使用更大的值更改__VIEWSTATE的值,以便在将其发回服务器时,会增加解压缩和/或索引信息的严重开销,从而基本上制作DDOS?

3 个答案:

答案 0 :(得分:6)

  1. 是的,可以读取viewstate的值。它是base64编码的,并不意味着它是加密的,所以要读取它的值,你需要做的就是将它从base64转换为UTF-8,你就能读取它的内容。 Try it out here for yourself列出了每个控件及其几个属性。关于操作内容,这是可能的但是困难的,因为在服务器端上处理之前内容被验证。

  2. 是的,如果您的网站是针对攻击的目标,并且大型视图状态发送了大量大请求,那么它将对服务器产生相应的影响。

  3. 看看以下内容:

答案 1 :(得分:1)

  1. 是的,如果您不使用机器密钥加密它。阅读本文:Malicious use of view state
  2. 加密和ViewState MAC在这里有所帮助。阅读本文:Protecting Your Site from DDoS Attacks

答案 2 :(得分:0)

  1. 是的,但是它只会针对该客户端显示不正确。当它变得危险时,你会读到这些值来执行你的业务逻辑。通常,Web应用程序永远不会信任来自客户端的信息viewstate的值被散列以尝试使用ASP.NET的默认设置检测修改,但仍然可以被有足够愿望的人操纵。

  2. 是的,它只是您从客户端收到的表单上的字段。因此可以操纵它。