【问题标题】:Best way to authenticate users?验证用户的最佳方式?
【发布时间】:2013-01-17 21:44:43
【问题描述】:

我意识到这个问题可能是主观的,但我在这方面还很陌生,虽然关于这个主题有很多。我还不能对此形成一个好的意见,我认为这可能部分是因为我是新手,我只能从我的项目的角度来思考,这并没有什么不寻常的。

所以我问在我的环境中,什么是身份验证的最佳选择?什么方法是最好的会话?饼干?还有什么?另外,您如何安全地将密码保存在表格中?我研究了数据类型,但这似乎产生了任何帮助。表格和/或列有什么特别的地方吗?最终,我很想在我的网站 {ie Facebook、Google、OpenID} 中添加其他身份验证方法,但我认为我需要先了解这一点。

我的环境是 ASP.NET,代码在 VB 中。我正在使用 MSSQL 2005(但如果需要可以访问 2008)。

谢谢 乔什

【问题讨论】:

  • 答:使用ASP.Net内置的会员系统。 (或较新的 SimpleMembership)
  • 如果您使用的是 VS2012,这些其他身份验证方法是内置的,因此您可以轻松实现。好吧,你必须取消注释掉一些行。
  • 嗯。是的,我调查过。但它似乎过于复杂,难以以编程方式管理。但我认为如果它易于使用,它将是一个很好的工具。你如何保存身份验证(cookie/session/somethingelse?)什么是 SimpleMembership?
  • 如果您不确定自己在这里做什么以避免安全问题,请务必使用内置的会员系统 - 在引擎盖下,这将使用 cookie 作为令牌在请求内容时对用户进行身份验证。如果您确实编写了自己的提供程序,则需要使用 cookie 维护会话,您永远不应使用查询字符串参数作为身份验证令牌。在公司环境中,您可能希望使用 Active Directory 成员资格提供程序。
  • 那么有人可以指点我如何自定义内置会员系统的要求吗?

标签: asp.net vb.net security session cookies


【解决方案1】:

我不熟悉 ASP,因此我无法回答您如何在整个会话期间最好地进行通信和保留凭据。听起来像其他人建议的那样,使用内置的会员系统是最安全的方法。但是,我完全同情您希望自己做事并了解他们如何在幕后工作的愿望。如果您确实想自己解决这个问题,我可以与数据库方面交流。

如果可能的话,永远不要将实际密码存储在任何地方。您应该只存储从密码生成的不可逆加密值(使用哈希加密算法,例如SHA512Managed)。要对用户进行身份验证,而不是解密存储的密码并比较两个纯文本密码,您希望加密输入的密码,然后比较两个加密的值。如果您存储实际密码,即使使用可逆加密算法对其进行加密,也存在很大的安全风险。

此外,如果您使用的加密算法允许您指定种子值,则应使用算法根据原始密码生成种子值。您不想为每个密码使用相同的加密种子值。

此外,大多数加密方法的设计速度都很快,因此它们可以用于通信流。但是,如果它们很快,这意味着有人可以更快地暴力破解它们。因此,使加密更安全的最佳方法是使它们尽可能慢。这通常是通过在循环中一遍又一遍地重新加密加密值固定次数来实现的。

【讨论】:

  • 正是史蒂文,我想知道这一切背后的“科学”。更不用说我觉得内置插件太麻烦且难以管理。我已经尝试过自定义信息并且很困难。但是,我又是新手,可能会遗漏一些东西。但你是对的。如果出于任何其他原因,我宁愿自己做,学习。你让我受益匪浅!现在进入 ASP 部分……希望如此!
  • 是的,使用提供的功能,就像那样,很棒,但我过去已经被咬过很多次了,至少在这样做时要谨慎。自己写东西可能需要更长的时间,但最终你会完全理解它是如何工作的,所以当出现问题时,你知道如何解决它。此外,您不必围绕它编写 hack 以使其按照您希望的方式工作。我对这个“会员”功能一无所知,但如果它与来自 Redmond 的任何其他与安全相关的功能一样,我可以很容易地想象它可能是多么复杂和繁琐。
  • 话虽如此,学习框架中提供的类似工具并在有意义的领域明智地使用它们仍然是一个好主意。如果您只需要一个简单的身份验证机制而没有异常要求,那么最好使用现有的,或者至少将其包装在更友好的“外壳”界面中。
  • 再次感谢史蒂文。周末我发现了一篇很棒的帖子,它解释了 VB 网站的事情。 || bit.ly/NcCH1z ||有了你对 DB 和这个网站的解释,我想我一切顺利。谢谢!
猜你喜欢
  • 2015-04-26
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 2010-09-13
  • 2013-08-27
  • 1970-01-01
  • 2017-01-22
相关资源
最近更新 更多