當有人在網站上用他們的電子郵件地址註冊時,他們通常會被要求通過點擊他們發送到的電子郵件地址中的鏈接來驗證或確認他們的電子郵件。訂閱或取消訂閱郵件列表也一樣。電子郵件驗證/確認安全
可用性明智,這是偉大的。這是非常快速和容易的事情,我想不出任何會打敗它的東西。
我不確定自己是否在推翻事物,但我只是想看看我是否遺漏了任何東西或者誤判了任何事情。
所以據我所知電子郵件驗證的目的 /確認是
- 爲了確保電子郵件地址是正確的
- 要發送到該地址確保電子郵件可閱讀並接受
- 爲了確保電子郵件地址確實屬於誰的嘗試註冊
隨着CURR的人只需一個他們點擊鏈接的流行實現,並立即驗證電子郵件,有人可能只是強制驗證鏈接並繞過這整個步驟。
只是訪問verify.php?code=YOURBESTGUESSHERE
並嘗試各種不同的代碼。
攻擊者現在可以進行以下剝削:
- 從我的郵件列表退訂一堆人
- 一堆人加入到我的郵件列表中沒有他們的同意傷了我的生意,因爲他們可能對我的內容不感興趣,他們可能會認爲我是垃圾郵件並且生意不好
- 有人可以通過檢查驗證頁面上的響應來尋址地址(例如,如果響應是「[email protected]」已經驗證「左右)
- 有人可以製造假賬戶,而不需要具有實際工作電子郵件地址
我不知道後者的好處是什麼,似乎這將是更容易,只需創建一個罰球爲了這個目的,我只是想把它放在那裏完成。
我的問題:
- 我錯過任何其他目的或剝削電子郵件驗證/確認的?
- 我是否應該爲電子郵件驗證添加安全層,例如驗證碼或時間延遲以防止暴力破解?
- 我應該問除復位代碼以外的其他信息嗎?像用戶名或電子郵件地址了嗎?或者安全問題類型的東西,或者他們在註冊時輸入的另一條信息?
這整件事情的最佳實踐是什麼,需要付出多大的擔心和努力?風險與收益/安全與可用性...?
也許你應該問這是關於http://security.stackexchange.com的具體問題? – SilverlightFox