使aspx身份验证cookie无效我有一个asp.netweb表单。当用户进行身份验证时,它会在注销时创建一个名为.aspxauth的安全cookie,我将这两种方法称为FormsAuthentication.SignOut();Session.Abandon()问题是我们做渗透测试,如果我窃取cookie,注销并手动重新插入cookie,然后我再次登录。所以.aspauth不是服务器端无效的。我用谷歌搜索,但找不到安全漏洞的答案。阅读这篇关于会话固定以及如何一劳永逸地摆脱它的文章:http://www.dotnetfunda.com/articles/show/1395/how-to-avoid-the-session-fixation-vulnerability-in-aspnet微软在这里承认这个问题:https://support.microsoft.com/en-us/kb/900111他们提供了一些建议来缓解这个漏洞:SecureApplicationwithSSLEnforceTTLandAbsoluteExpirationUsingHttpOnlyinASP.NET2.0Cookies和FormsAuthenticationUsingtheMembershipclassinASP.NET2.0关于最后一个,为了方便/保存,我把它从网站上贴下来:在ASP.NET2.0中实现Forms认证时,你可以选择将用户信息存储在在会员提供者中。此选项是ASP.NET2.0中引入的新功能。MembershipUser对象包含特定用户。如果用户已登录,则此信息可以存储在MembershipUser对象的Comment属性中。如果使用此属性,则可以开发一种机制来减少ASP.NET2.0中的cookie重放问题。该机制将遵循以下步骤:您创建一个HttpModule来挂钩PostAuthenticateRequest事件。如果FormsIdentity对象位于HttpContext.User属性中,则FormsAuthenticationModule类将表单身份验证票证识别为有效。自定义HttpModule类然后获取对与经过身份验证的用户关联的MembershipUser实例的引用。您检查Comment属性以确定用户当前是否登录。重要提示:您必须在Comment属性中存储指示用户何时明确注销的信息。此外,当客户最终再次登录时,您必须清除Comment属性中的信息。如果用户当前未登录,如“notes”属性所示,您必须执行以下操作:清除cookie。将Response.Status属性设置为401。调用Response.End方法,这会将请求隐式重定向到登录页面。通过使用此方法,仅当用户未明确注销且表单身份验证票证未过期时,表单身份验证cookie才会被接受。以上就是C#学习教程:使aspx身份认证cookie失效及分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
