簡體   English   中英

用於驗證電子郵件地址的安全系統

[英]Secure system for verifying e-mail addresses

這個問題我真的很喜歡@woliveirajr的答案,因為它可以解決:

  1. 如何防止發布網站上使用的電子郵件地址
  2. 驗證電子郵件地址的所有者

為了避免這種泄漏,您還可以通過請求電子郵件來開始注冊過程。 輸入后,您將發送帶有鏈接的電子郵件,以便用戶可以繼續注冊過程。 如果電子郵件已經注冊,則您將發送一封電子郵件說明。

這樣,只有電子郵件的所有者可以注冊。

缺點:

  • 太多的注冊步驟可能會使真正的普通用戶感到無聊。
  • 在極少數情況下,簡單地顯示電子郵件已經在站點中注冊是一個問題,特別是因為在提供所需電子郵件的任何站點都可以很容易地進行注冊。 您將不會收到用來激活您的帳戶的電子郵件,但是一般而言,該網站會將帳戶/用戶名鏈接到該電子郵件。

我不確定的是如何實現一個系統,使用戶僅在單擊電子郵件中的鏈接時才能訪問注冊頁面。 注冊頁面是否會使用GET檢索傳遞給它的數據並驗證“代碼”以知道用戶是否可以注冊,並且此代碼每30分鍾更改一次? 例如,通過電子郵件發送的注冊鏈接可能是mysite.com/register.php?secretcode=as18d register.php “代碼”檢查為as18d但此代碼每30分鍾更改一次。 這是主意嗎? 代碼是否會根據系統時間由加鹽的哈希生成?

或者,可以通過電子郵件發送帶有幾個字母的鏈接,而不是通過電子郵件發送,用戶進入注冊頁面進行身份驗證,有點像捕獲的工作原理,但實際上卻不是。

一般方法是使用不可猜測的令牌,例如嵌入在鏈接中的GUID,以便它與GET一起提交。 這應該是安全的,因為從統計學上講,無論用戶花多少時間去猜測,都不太可能有人隨機猜測任何用戶的GUID,因此甚至沒有真正的必要。

值得注意的是,應該通過SSL鏈接完成此操作,以避免中間人破壞驗證過程的可能性。

服務器端無法保證HTTP請求來自電子郵件中的鏈接。 您不能從客戶端信任任何東西。 都可以被欺騙和操縱。

您需要的是難以猜測的令牌。 長而隨機是良好的起點。

由於多種原因,與AJ意見不同。

  • 如果您的用戶數據庫變大,那么您將不想跟蹤多年未使用的令牌。
  • 如果有人請求激活令牌但幾天后不使用它,則不太可能會使用。 最好將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM