ASP.NET的登录类是否足够安全?

时间:2012-01-08 13:51:48

标签: asp.net security hash passwords

我已经建立了一个网站,该网站使用ASP.NET(.NET 4)附带的登录类来管理用户帐户和密码。

这些类对于可公开访问的网站是否足够安全?如果我为一家酒吧开发一个银行的网站而不是一个愚蠢的自定义CMS会怎么样?

更新:我不知道ASP> NET有其他登录类。我指的是这些。 http://msdn.microsoft.com/en-us/library/ms178329.aspx

2 个答案:

答案 0 :(得分:2)

是的,它们足够安全......这些可以为您提供广泛的功能,例如根据演员和许多其他事情限制网页浏览量。

答案 1 :(得分:1)

如果配置正确,FormsAuthentication被广泛使用并且相对安全。

确保添加MachineKey,(您可以在此处生成一个http://aspnetresources.com/tools/machineKey,这与MSDN网站中提供的链接相同)

  • 如果它是系统的安全部分;考虑将会话超时设置得低(方便安全性10/15分钟)。
  • 确保您的会员提供商设置为良好的HASH算法,即<membership userIsOnlineTimeWindow="15" hashAlgorithmType="SHA512">
  • 并且提供程序本身设置为哈希而不是加密passwordFormat="Hashed"
  • 并且您的RoleManager(如果您的利用角色)和表单身份验证部分包含Cookie的配置; cookieProtection="All"

其中的密码重置系统是一个笑话;我不会复制并粘贴自己,但您可以在此处查看重置密码的首选方法https://stackoverflow.com/questions/10213124/combine-passwordrecovery-and-changepassword-control/10237107#10237107

这基本上是一个好的开始;您还可以查看Troy Hunts会员安全指南http://www.troyhunt.com/2010/07/owasp-top-10-for-net-developers-part-3.html

哦和始终通过HTTPS(SSL)收集用户信息/处理登录/注册。并尝试使用某种验证令牌(MVC https://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=msdn+AntiForgeryToken中的一个),这可以减少CSRF的攻击格局,并且基本上是强制攻击。