對於使用安全實踐的任何事物,暴露和威脅評估都是您必須針對自己獨特的環境和用例進行評估的內容。現有的答案為該評估提供了很多接觸點,以及避免發生問題的指針-例如 GET
觸發的動作。相反,我將更多地關注UX的“用戶”部分。我還將觸及頁面上散佈的許多評論。
使用電子郵件觸發的操作“驗證”的確切原因也是要考慮的因素。如果您只是確認這是一個有效的電子郵件地址,那麼幾乎所有的操作就足夠了。驗證電子郵件,創建帳戶的意圖以及接收電子郵件的用戶是發起帳戶創建的用戶,需要付出更多的努力。
您應該不要必須採取的是發送提醒電子郵件。假設用戶有意創建了該帳戶,使用了一個有效的電子郵件地址,並希望將該帳戶用於提供帳戶的任何目的,那麼他們將尋找電子郵件,並會盡快進行激活過程。如果鏈接,代碼或任何其他內容在等待電子郵件時因其他事項而陷入歧途,則在使用它們之前可能會過期。在這種情況下,允許他們重新發送驗證電子郵件即可。但是,提醒電子郵件很可能是垃圾郵件觸發手段,而不是給用戶帶來好處。
作為用戶,我很高興有可用的選項來激活/驗證我的帳戶。我遇到的最常見的選項集是,該電子郵件提供一個鏈接,我可以單擊或剪切&粘貼,和,然後可以在我的頁面中的表單字段中輸入確認代碼網站上的“帳戶設置”區域。確認碼很少是,除了5到9位數長的整數外。
作為用戶,給我最自信的驗證電子郵件是那些在URL中具有加密外觀的哈希的電子郵件( / verify?l = lgGS2SBjMTU4NjkwNjYxMjI5MDBhZDk2YjEyMzMzYzNjNhZmQxOb
),這使我對對我來說唯一的頁面,然後我必須輸入用於創建帳戶的密碼。使用哈希可以確認鏈接是在電子郵件中收到的,沒有被猜測或強行使用,因此可以驗證電子郵件是否有效。在執行任何其他操作之前,該唯一頁面的提供允許服務器將發送給它的電子郵件標記為“有效”,而無需確認帳戶的創建。與某些防病毒,惡意軟件檢測或預取操作相反,輸入密碼可確認另一端有演員。密碼的有效性在一定程度上確定了電子郵件的收件人和帳戶的創建者是同一個人。
建議的30分鐘時限確實有點嚴重,而如果威脅評估表明24小時內的暴露是不可接受的,則24小時可能會太大。我認為2個小時對幾乎所有用戶的環境都足夠。如果重新發送驗證的功能可用,則尤其如此。即使使用與遠程POP帳戶建立14 kb / s連接的移動設備,也應該能夠在120分鐘內完成交換。
使用JS來以某種方式驗證人為行為可能會出現問題。 JS可以關閉,並且比許多Web開發人員想知道的更多。其次,即使在瀏覽器中啟用了JS,廣告攔截器 仍可以基於每個站點或每個源來阻止JS。我在全球範圍內阻止了許多JS來源,包括Google的分析腳本,並為一些網站(例如Stack Exchange)添加了白名單,在這些地方我願意使用我的數據來支持它們。
在電子郵件中或確認頁面上包含“取消”帳戶的鏈接是浪費。在電子郵件中,它實際上適得其反,因為建議您單擊有關您不想要的帳戶的鏈接是一個好主意。相反,電子郵件中應包含文字說明,表示無所事事將導致帳戶無法確認,甚至可能被刪除。確認頁面上的取消鏈接甚至更糟,因為它獎勵不良行為。作為舊版Google snafu的一部分,我經常收到指向另一個Gmail帳戶的電子郵件,並且我認為相反的情況也適用於其他帳戶。 [[過去Google不會合併點綴和未點綴的用戶名,因此我的點綴用戶名和其他人的未點綴版本是不同的帳戶,但是Google偶爾會滑倒,反正我會收到他們的電子郵件:(]
您將“經過驗證”的電子郵件地址與激活鏈接緊密結合的程度取決於您的用例和威脅評估,當我在更改關聯的電子郵件地址後必須重新驗證我的帳戶時,我會感到有些煩惱。我對流程的接受程度與帳戶的“價值”成正比。對於我的銀行帳戶,PayPal等,我100%接受。但是在PcPartsPicker上,我大約接受該帳戶的15%
對於IP和/或用戶代理,請忽略它們。在這種情況下,我經常會查看站點並選擇使用移動設備創建帳戶。 strong>不是,但是可以打開電子郵件。如果我創建了一個帳戶,並得知需要以某種方式進行驗證或確認,並且電子郵件是提供的方法,我會等到我回家後,再在桌面上打開電子郵件,以便在其中檢查它。 IP和用戶代理將因此非常不同。但是,我的密碼將保持不變,並且足以驗證我作為原始帳戶創建者的身份。
請記住,電子郵件與時代廣場的Jumbo-tron一樣安全,並且相應地進行。