0

考虑以下有关用户注册系统的方法:

  1. 用户填写表格并发送。
  2. 系统向用户发送电子邮件确认,确认链接包含所有用户数据(经过混淆处理)。

    http://mysite.com/register?name=John&mail=john@john.com&pass=123&etc (obfucated, say, base16).
    
  3. 尚未在系统中实际执行任何注册。

  4. 用户点击链接。
  5. 然后系统最终使用链接数据注册用户。

这种方法有哪些失败之处?尤其是在安全方面。

我认为这种方法是为了避免数据库中的垃圾列(例如“激活”)。这样的事情。

4

1 回答 1

8

首先,永远不要传递密码。一旦您的站点收集到它,就应该对其进行加盐、散列和存储在数据库中,永远不会再离开。它绝对不应该通过电子邮件发送或在查询字符串中传递,并且出于所有意图和目的,编码并不比明文更好。

其次,一般应避免查询字符串中的敏感数据。从安全的角度来看,您将生成一个短期到期的加密安全随机令牌,以在电子邮件中发送,并在用户返回激活时使用它来识别用户。

我建议坚持使用经过验证的真实注册方法,只处理额外的表和列。一般来说,当涉及到安全性时,推出自己的解决方案是一个坏主意(我遵守的经验法则,我认为其他所有人也应该遵守)。

于 2013-06-14T14:14:15.700 回答