首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暴力破解故障安全登录asp.net

暴力破解故障安全登录asp.net
EN

Stack Overflow用户
提问于 2010-08-20 02:47:43
回答 3查看 7.9K关注 0票数 3

我刚刚读了一篇文章,说7个字符的密码不再安全。但是,如果服务器在每次登录尝试后增加重试登录尝试的时间,则暴力破解攻击是无用的。如何在asp.net中创建这样的逻辑?不知何故,我猜服务器端代码需要记住尝试登录的ip地址,并且应该在每次新尝试时增加响应时间?

EN

回答 3

Stack Overflow用户

发布于 2010-08-20 02:52:05

IP地址实际上并不是一种识别用户身份的安全方法。您可以尝试将最后一次登录尝试提交的时间存储在cookie中,但如果浏览器不接受它们,它的使用将受到限制。会话变量也需要cookie,所以它们是不存在的。

一些网站(我想到的是雅虎)在第三次尝试后开始显示验证码表单。除了您的登录详细信息外,您还必须正确回答验证码。

另一种选择是在X次尝试失败后禁用帐户(可以在您的数据库中跟踪),但我个人不喜欢这种做法,因为它往往会迫使我在忘记密码时打电话给别人重置密码。

票数 4
EN

Stack Overflow用户

发布于 2010-08-20 03:45:33

许多暴力攻击都发生在离线状态。这就是为什么失败的尝试锁定不能替代需要复杂的密码,使用适当的“盐”,和密钥加强。

票数 2
EN

Stack Overflow用户

发布于 2010-08-20 06:05:00

ASP.NET有一个内置的机制来防止对登录密码的暴力破解攻击。请参阅maxInvalidPasswordAttempts Membership property

如果遵循安全最佳实践,例如安全地散列密码和阻止暴力破解攻击,IMHO 7个字符的密码对于大多数web应用程序(我的银行允许7个字符密码)是完全足够的。

一旦你获得了超过7或8个字符的密码,你实际上是在说“我的应用程序需要超级安全”,在这种情况下,你应该考虑单独的客户端SSL证书。要求密码中包含更多字符的结果是递减的。您的用户中有多少人可以记住复杂的8或9字符密码?他们最终会把它们写下来。就我个人而言,我被任何需要我创建超复杂密码的网站拒之门外。

只要设置正确,ASP.NET成员资格就可以为您完成大部分有关安全性的繁重工作。

但是,有一些ASP.NET成员资格不能为您做的事情,例如:

确保HTTPS is used

  • Preventing CSRF和类似的attacks

  • Ensuring所有web请求都被路由到ASP.NET,以防止静态内容由IIS提供,并绕过用户是人(验证码)身份验证( ASP.NET

)的情况

有关安全最佳实践的更多信息,请查看OWASP

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

https://stackoverflow.com/questions/3525134

复制
相关文章

相似问题

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