我现在正在学习ASP.NET,我对__VIEWSTATE和__EVENTVALIDATION感到有点困惑。
是否可以读取这两个项目的值,以了解应用程序的内部结构并可能对其进行操作。例如。人们写道__VIEWSTATE包含有关未通过POSTBACK发回的元素属性的信息,例如标签。那么是否有可能操纵应用程序中的标签值以使其显示错误的信息?
是否可以使用更大的值更改__VIEWSTATE的值,以便在将其发回服务器时,会增加解压缩和/或索引信息的严重开销,从而基本上制作DDOS?
答案 0 :(得分:6)
是的,可以读取viewstate的值。它是base64编码的,并不意味着它是加密的,所以要读取它的值,你需要做的就是将它从base64转换为UTF-8,你就能读取它的内容。 Try it out here for yourself列出了每个控件及其几个属性。关于操作内容,这是可能的但是困难的,因为在服务器端上处理之前内容被验证。
是的,如果您的网站是针对攻击的目标,并且大型视图状态发送了大量大请求,那么它将对服务器产生相应的影响。
看看以下内容:
答案 1 :(得分:1)
答案 2 :(得分:0)
是的,但是它只会针对该客户端显示不正确。当它变得危险时,你会读到这些值来执行你的业务逻辑。通常,Web应用程序永远不会信任来自客户端的信息viewstate的值被散列以尝试使用ASP.NET的默认设置检测修改,但仍然可以被有足够愿望的人操纵。
是的,它只是您从客户端收到的表单上的字段。因此可以操纵它。