【问题标题】:Securely Transfer User Entered Password安全传输用户输入的密码
【发布时间】:2014-04-07 12:09:11
【问题描述】:

我是 ASP .Net MVC 的新手。我只是想知道,当他/她登录我的网站时,如何加密用户输入的密码?场景如下:

  • 有注册用户访问我身边,点击登录

  • 输入他注册的用户名和密码,然后点击登录

  • 浏览器将上述两个纯字符串(代码方面)发送到服务器。

在这里,我如何将密码安全地发送到服务器?我无法理解它在 ASP .Net MVC 生成的 HTML 文件中是如何工作的。你能帮我理解一下吗?

谢谢,

【问题讨论】:

    标签: asp.net asp.net-mvc security


    【解决方案1】:

    这与 ASP.NET MVC 或它生成的任何文件没有太大关系。从浏览器到服务器端代码,密码只是文本。尽管您至少应该在 HTML 中使用 input type="password"(或任何发出一个的服务器端代码),以便浏览器知道将该值视为密码,并且理想情况下浏览器和服务器之间的通道应该被加密使用 SSL。

    密码到达服务器后,您需要对其进行哈希处理。尽快执行此操作,以免您保留原始密码字符串,如果发生错误,该字符串可能会意外记录在某处。为了正确散列密码,可以对这个主题进行大量阅读。我发现this page 很好地解释了整个事情的选择和必要性。要点是您永远不想知道用户的密码,并且您希望它被单向哈希以使其无法检索。

    (这里要记住的重要一点是,即使您运行服务器,您个人也不想知道密码。这样做的一个重要原因是因为用户倾向于在其他站点上重复使用密码。有人例如,可能无意中将他们的网上银行密码信任您。这不是您的服务器是否安全或您自己公开的任何数据的问题,而是负责任地处理其他人数据的问题.)

    一般来说,您如何处理散列密码是非常标准的。您可以将其存储在您的数据中,并且任何时候用户登录时,您都会对他们提供的密码进行哈希处理,并将其与存储的哈希值进行比较。这样您就不需要知道用户的实际密码,因为比较哈希足以确定输入的密码是否相同。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 2011-02-02
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      相关资源
      最近更新 更多