2009-07-21 69 views
2

我想创建一个通讯应用程序,用户自然必须确认他们注册了通讯,所以如果某些机器人输入地址,我们不会发送垃圾邮件。用户帐户激活电子邮件是否没有保存在数据库中的秘密合理安全?

我的想法是简单地向用户发送一封包含链接的电子邮件,该链接在url中有一个秘密,这是一个电子邮件地址和一些秘密sitekey的散列。

我的问题是以下几点: 有人可以通过注册几个帐户,从而接收与他的地址秘密散列,猜测sitekey,并因此注册每个她想要的电子邮件地址?

我没有看到通过这样做可以获得的任何东西,但如果这很容易,有人会这样做,我会被列入黑名单。

我不存储未激活的用户帐户的原因很简单,我不想每隔x天从数据库中清除它们。

回答

5

如果你确保你使用类似sha1这样的完全随机salt/sitekey,那么试图用字典攻击来反向工程sitekey将是徒劳的。

如果有人没有要合成自己的哈希登记任意地址,更有效地利用自己的时间会来访问你的服务器来读取源代码:)

+0

谢谢你的和平介意:) – nasmorn 2009-07-21 10:05:42

2

我认为这将是最好的生成一个随机的秘密,并保持在分贝。这样就没有什么可以猜到的。 (至少不是没有权限添加任何电子邮件)。

相关问题