这不是关于某些 javascript 细节的特定问题,但我正在寻找验证,即我创建的模型中没有明显的漏洞。我决定推出自己的身份验证例程(除了在后端使用 bcrypt 散列),其工作方式如下:
- 用户(浏览器或 phonegap 创建的本机应用程序)注册 > 使用 jQuery ajax 发布到后端的 Json 对象使用 bcrypt 处理密码并保存密码用户配置文件数据
- 后端生成并使用客户端 IP 地址保存它返回的令牌(随机哈希,如 /dev/urandom)
- jQuery 插件将令牌存储到本地 cookie
- 当发出一些请求(发布、评论等,但不是太频繁)时,它会从 cookie 中获取令牌并将其添加到 json 并使用 ajax 再次发布
- 后端检查令牌是否存在且未过期(有效期为 7 天),检查 ip-address 是否相同,如果 ok 验证请求 json 数据并处理请求
- 当令牌过期时,会显示一个登录屏幕,并以 ajax 形式发布凭据,并在步骤 2 中创建一个新令牌。
ajax 请求的所有内容都通过 ssl 进行,并且没有密码存储在任何地方。如果超过阈值,还有一种机制检查暴力令牌垃圾邮件会暂时阻止源 IP。这不是一个高安全性的应用程序,但希望尊重用户数据并确保它“足够”安全。
我希望这个问题是合格的,即使它并不具体,如果它会引发一些讨论,它可以作为其他人的参考。我找不到任何关于这种特定方法的最佳实践教程。
更新:根据收到的反馈更新身份验证机制,因为它对于非关键 Web 应用程序似乎“足够安全”。