在实现我的站点(Rails 站点,如果它有任何区别)时,我的设计重点之一是减轻用户创建另一个用户名和密码的需要,同时仍然提供有用的每个用户功能。
我打算这样做的方式是:
- 用户在网站上输入信息。信息通过服务器端会话与用户相关联。
- 用户完成输入信息,服务器通过电子邮件向用户发送访问URL,大致形式如下:
http://siteurl/<user identifier>/<signature: HMAC(secret + salt + user identifier)>
- 用户单击 URL,站点查找用户 ID 和 salt,并使用服务器存储的秘密计算 HMAC,并验证计算的 HMAC 和签名是否匹配。
我的问题是:这是完成我想要做的事情的一种相当安全的方式吗?是否存在使其无用的常见攻击?是否有令人信服的理由放弃我避免使用用户名/密码的愿望?是否有关于该主题的必读书籍或文章?
请注意,我不是在处理信用卡号码或任何非常私密的东西,但我仍然希望保持信息的合理安全。