首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止使用ViewState?

防止使用ViewState?
EN

Security用户
提问于 2014-04-21 23:33:08
回答 1查看 1.8K关注 0票数 1

根据OWASP如果在ASP.NET应用程序中包含SessionID,则可以在ViewState应用程序中防止SessionID。从该条中:

Viewstate可以用作CSRF防御,因为攻击者很难伪造有效的Viewstate。伪造一个有效的Viewstate并不是不可能的,因为攻击者可以获得或猜测参数值是可行的。但是,如果将当前会话ID添加到ViewState中,则使每个Viewstate都是唯一的,从而对CSRF免疫。

如果您正在使用加密的SessionID,是否需要包含ViewState?恶意用户如何生成有效的加密ViewState?

EN

回答 1

Security用户

回答已采纳

发布于 2014-04-22 12:51:23

如果您正在使用加密的SessionID,是否需要包含ViewState?恶意用户如何生成有效的加密ViewState?

恶意用户可以通过访问相关页面并提取值来生成有效的加密ViewState。如果会话ID不是ViewState值的一部分,则该值对所有会话都有效。

在Microsoft页面确保视图国的安全中也提到了这一点:

如果网站对用户进行身份验证,则可以在ViewStateUserKey事件处理程序中设置Page_Init属性,以便将页面的视图状态与特定用户关联起来。这有助于防止一次单击攻击,在这种攻击中,恶意用户从先前创建的页面创建具有视图状态的有效预填充网页。然后,攻击者诱使受害者单击使用受害者身份将页面发送到服务器的链接。设置ViewStateUserKey属性时,攻击者的身份将用于创建原始页的视图状态的哈希。当受害者被引诱重新发送页面时,由于用户键不同,散列值将有所不同。该页将失败验证,并将引发异常。必须将ViewStateUserKey属性设置为每个用户的唯一值,例如用户名或标识符。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/56302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档