这不是一个关于某些javascript详细信息的具体问题,但我正在寻找验证,以确定我创建的模型中没有明显的漏洞。我决定推出自己的认证程序(除了使用bcrypt在后端散列),其工作是这样的:使用ajax的JavaScript应用程序的身份验证模型
- 用户(浏览器或PhoneGap的创建本机应用程序)报> JSON对象使用jQuery的AJAX发布后端使用bcrypt处理密码并保存密码用户配置文件数据
- 后端根据客户端IP地址生成并保存它返回的令牌(随机哈希,如/ dev/urandom)
- jQuery插件存储令牌到当地的cookie
- 当发出一些请求(发布,评论,但不是太频繁)时,它会从cookie并将其添加到json中,并使用ajax将其再次发布
- 后端检查该令牌是否存在并且尚未过期(有效期为7天),检查该IP地址是否相同,并且如果ok验证请求json数据并处理该请求
- 当令牌已过期的登录画面中示出和凭证张贴AJAX并且如在步骤中创建一个新的令牌2.
一切顺利通过SSL进行AJAX请求和无密码存储任何地方。如果超出阈值,还会有一种机制检查蛮力标记垃圾邮件是否会暂时阻止源IP。这不是一个高安全性的应用程序,但要尊重用户数据并确保其“足够”安全。
我希望这个问题具有资格,即使它不是特定的,并且作为其他人的参考,如果它会引发一些讨论。我无法找到有关此特定方法的任何最佳练习教程。
更新:认证机制根据收到的反馈进行更新,因为它似乎对于非关键Web应用程序来说是'足够安全'的。
生成一个随机令牌,比如'/ dev/urandom'不使用md5,它被破坏并且不是一次性使用令牌的最佳工具。 – rook 2012-07-18 19:57:44
感谢您的提示,我会研究一种生成令牌的替代方法。你能告诉我如何创建一个随机的阿尔法 - 数字字符串,因为我没有使用它来散列密码等?熵是否比替代品或其他东西更糟? – 2012-07-19 16:58:37