0

我目前正在一个网站上工作,我必须通过用户名/密码使用 ajax 将值发送到我的控制器来验证用户。

目前,我有一个用户名输入和一个“密码”类型的密码输入。显然,这意味着密码隐藏在前端,但是当我将我的值发布到控制器时,我检查了请求并注意到密码是以明文形式发送的。难道我做错了什么?

我原以为你真的应该使用 javascript 对密码进行哈希处理,然后发送该值并在后端验证未哈希处理的值。我想另一种选择是使用https?这是首选方法吗?

我不确定我是否正确处理了整个过程。基本上,我试图通过验证通过 ajax 发送的用户名/密码来登录成员,但我担心密码是以明文形式发送的。采取的正确方法是什么?

谢谢

4

1 回答 1

1

就像你说的,你需要使用 SSL (HTTPS) 来确保密码是加密的。

使用客户端散列然后以明文形式发送的问题是散列可以被攻击者截获和重放。

SSL 包括防止重放的机制。

如果您不想为 SSL 证书付费并且您不太关心域名,那么 Azure 网站可能是一个选择。如果您不介意共享基础设施,您可以获得免费托管,而且,对于您的目的而言更重要的是,您可以使用内置的默认 SSL 证书用于*.azurewebsites.net域。

这将为您的网站提供免费托管和 SSL,但有以下限制:

  • 您将仅限于*.azurewebsites.net域名
  • 您将使用共享基础架构
于 2013-11-09T15:49:50.550 回答