我想知道在使用ajax向身份验证服务器发送用户名和密码时需要记住哪些事情。我正在使用phoneGap和jQuery来开发一个我非常新的网络应用程序,我想确保以正确的方式进行操作。欢迎任何建议。
答案 0 :(得分:2)
您应该使用质询 - 响应机制。
服务器应该向客户端发送一个不可重用的过期nonce和用户的salt 客户端应使用salt对密码进行哈希处理,使用nonce对生成的哈希进行哈希处理,然后将该哈希值发送回服务器。
服务器应在其数据库中存储预先存在的密码哈希值 然后它应该使用nonce散列存储的散列,并将其与客户端的散列进行比较。
这使得攻击者无法学习原始密码,即使攻击者是活跃的中间人并且已经窃取了数据库。
但是,如果攻击者窃取数据库,他将能够通过绕过您的UI并使用已知的哈希来登录。
答案 1 :(得分:1)
这是您自己构建的应用,还是您要与现有的基于网络的服务进行对话?
使用HTTPS是必须的,假设它可用。如果您自己构建网站,我建议您查看基于令牌的系统,类似于许多热门网站所使用的系统。
基本流程如下:
通常,避免以纯文本格式存储用户密码。以与服务器身份验证系统兼容的形式散列它,然后存储该值。
答案 2 :(得分:0)
我使用过Raymond的例子。我也在客户端哈希密码。
http://www.raymondcamden.com/index.cfm/2011/11/10/Example-of-serverbased-login-with-PhoneGap