2010-09-19 46 views
1

我正在用Java编写一个Web应用程序,用户可以在那里输入电子邮件地址来接收电子邮件。我的问题是关于这个电子邮件地址的验证(所以它不是关于验证!)。我也用google-app-engine标记了这个问题,因为应用程序将会在那里生存,但我认为这不重要。如何在Java中创建电子邮件验证URL?

无论如何,对于拥有Google帐户的用户,我使用应用引擎的用户API来验证该地址,但对于其他人,我想发送验证电子邮件,为他们提供URL。非常标准,我会想,但也有标准的方式来产生网址?或者只是创建电子邮件地址的散列,将其存储在数据库中并将其作为URL中的参数足够?

回答

2

我不会验证电子邮件使用电子邮件哈希值。这很容易猜测,有人可能会试图伪造。

如果我要实现它,我想补充随机GUID并将其存储到数据库进行验证。我不知道这是不是验证的标准方法...

1

创建一个servlet,它会检查给定一个键(比如说一些随机字符串),该键是否是先前给出的。关键是需要冷冻保护,以便它不能被想要冒充某人的攻击者猜出。

然后,当某人用电子邮件注册时,您将包含该密钥的链接发送到他们声称拥有的地址。如果将来某个时候,您发送的链接到达服务器,您可以记录该事件,并确信该电子邮件地址是正确的。

+0

嗯,这主要是一种很好的方式来创建我坚持的crytopgraphically安全密钥。 – nvcleemp 2010-09-19 07:18:01

+0

啊这相当简单 - 从java的secureRandom生成一个安全的随机 - 它足够你的目的。确保你经常以安全随机的方式加入。 – Chii 2010-09-20 09:28:08