2010-09-19 109 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