我目前正在开发一个网站,我必须使用ajax通过用户名/密码验证用户,以便将值发送到我的控制器。
目前我输入了用户名和密码类型'password'的输入。显然这意味着密码隐藏在前端,但是当我将我的值发布到控制器时,我检查了请求并注意到密码是以明文形式发送的。我做错了吗?
我原本以为你应该使用javascript对密码进行散列,然后发送该值并验证后端的未散列值。我想另一种选择是使用https?这是首选方法吗?
我不确定我是否正确处理了整个过程。基本上我试图通过验证通过ajax发送的用户名/密码来登录成员,但我担心密码是以明文形式发送的。什么是正确的方法?
由于
答案 0 :(得分:1)
如您所说,您需要使用SSL(HTTPS)来确保密码已加密。
使用以明文形式发送的客户端哈希的问题是,哈希可以被攻击者拦截并重放。
SSL包括防止重放的机制。
如果您不想支付SSL证书并且您不太关心域名,则可以选择Azure网站。如果您不介意共享基础架构,则可以获得免费托管,而且,对于您的目的而言,您可以使用内置的默认SSL证书进行*.azurewebsites.net
域。
这将为您的网站提供免费托管和SSL,具有
的限制*.azurewebsites.net
域名