asp.net – 实现安全的“记住我”的最佳实践
|
有时候,我遇到某些不提供身份验证功能的Web开发框架,例如Authentication ASP.NET。 我想知道通过手工编码实现“记住我”登录功能时需要考虑哪些安全措施? 这是我通常做的事情: >将用户名存储在cookie中。用户名未加密。 还有什么我错过的,这可能会导致安全漏洞? 解决方法该cookie应该始终是一个随机值过期。在某些情况下,您可以将状态存储为Cookie值,并且它不是一个严重的危险,例如用户首选语言,但应尽可能避免。转动HttpOnlyCookie,是一个好主意。阅读A3:OWASP top 10 for 2010中的“断开的身份验证和会话管理”。本节中的一个重点是必须在整个会话中使用https。如果会议持续很长时间,那么这更重要。 还要记住,“记住我”创建了一个大窗口,攻击者可以在该窗口中“骑”在会话上。这给攻击者一个很长的时间(几个月),他可以在其中发送一个CSRF攻击。即使您有CSRF保护,攻击者仍然可以搭乘XSS和XmlHttpRequest进行会话(HttpOnlyCookie将防止完全劫持)。 “记住我”使其他威胁像xss,csrf,嗅到更严重。只要这些漏洞得到解决,那么你不应该有真实世界的黑客的问题。 实现“记住我”功能的最简单(和安全的)方法是修改会话超时您的web.config文件: <configuration>
<system.web>
<sessionState timeout="60"/>
</sessionState>
</system.web>
</configuration>
将超时设置为高位,也许一个月左右。如果“记住我”复选框未选中,则存储更正常超时的会话变量(如24小时)。在每个请求的头文件中检查此会话变量。如果选中该复选框,则正常运行,并让asp.net照顾它。 如果会议没有到期,那么暴力就会更容易。这些值很大,但允许黑客花费数年时间来猜测会话ID是一个漏洞。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何将KendoUI DropDownListFor绑定到ViewD
- asp.net-mvc – 在哪里可以找到一个简单的简单解释MVC?
- asp.net – “viewstate MAC的验证失败.如果这个应用程序由
- asp-classic – 哪里可以存储经典ASP的连接字符串?
- asp.net-mvc – NLog在所有aspnet布局渲染器上抛出配置异常
- asp.net-mvc – ASP.NET MVC中的代码
- asp.net-mvc – 如何将服务器错误的http状态代码捕获到ASP.
- asp.net – CalendarExtender定位问题
- Asp.Net MVC路由表和控制器操作
- 如何为高使用率的ASP.NET应用程序重新平衡SQL Server 2008?
- asp.net-mvc-3 – 将复选框绑定到MVC中的int数组
- 使用ASP.NET MVC的jQuery表单验证
- asp.net-mvc-3 – 可以添加到显示/ EditorTempla
- 什么是ASP.NET应用程序部署的最佳实践
- ASP.NET – IIS7 – IBM DB2问题
- asp.net-mvc – 为什么ASP.NET MVC Html.CheckBo
- asp.net-mvc-4 – Azure Blob 400创建容器时的错
- asp.net – 如何使用Excel服务器端?
- asp.net – Ajax.ActionLink不工作,Response.IsA
- asp.net – 提高性能的最佳方法(并以某种方式包括
