【问题标题】:Can the __VIEWSTATE and __EVENTVALIDATION be use for research in order to breach a web app?__VIEWSTATE 和 __EVENTVALIDATION 可以用于研究以破坏 Web 应用程序吗?
【发布时间】:2011-03-09 16:42:25
【问题描述】:

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

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

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

【问题讨论】:

  • 谢谢大家的好答案!

标签: c# asp.net viewstate


【解决方案1】:
  1. 是的,可以读取视图状态的值。它是 base64 编码的,这并不意味着它是加密的,因此要读取它的值,您只需将其从 base64 转换为 UTF-8,您就可以读取它的内容。 Try it out here for yourself 列出了每个控件及其几个属性。关于操作内容,这是可能的,但很困难,因为内容在服务器端处理之前是经过验证的。

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

看看以下内容:

【讨论】:

    【解决方案2】:
    1. 是的,如果您不使用机器密钥对其进行加密。阅读:Malicious use of view state
    2. 加密和 ViewState MAC 在此处提供帮助。阅读:Protecting Your Site from DDoS Attacks

    【讨论】:

      【解决方案3】:
      1. 是的,但是对于该客户端,它只会显示不正确。当您读取这些值以执行您的业务逻辑时,就会变得危险。通常,对于 Web 应用程序,永远不要信任来自客户端的信息。对视图状态的值进行哈希处理以尝试使用 ASP.NET 的默认设置检测修改,但仍然可以由有足够愿望的人操作。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-23
        • 1970-01-01
        • 2015-06-19
        • 1970-01-01
        相关资源
        最近更新 更多