2017-02-19 63 views
0

註冊帳戶或重置Web服務密碼時,用戶通常需要輸入兩次密碼才能確保密碼不會意外拼錯。應該重新輸入密碼也發送到服務器?

如果意外拼寫錯誤是此功能的唯一的考慮因素,這是可以接受的(甚至更好,從網站設計的角度來看)的重新輸入的密碼通過瀏覽器/客戶端的JavaScript來驗證,而不是被髮送到服務器驗證。

我說的意外拼寫錯誤是只有考慮這個功能?

+0

是的,這聽起來對我來說是正確的。只需立即哈希,比較哈希,然後如果它們匹配,通過https發送一個哈希到您的服務器。 – Jameson

+0

@Jameson爲什麼要在發送到服務器之前對密碼進行散列處理?這將使得哈希在邏輯上成爲用戶的密碼 - 攔截哈希的人可以模擬用戶。現在我通過HTTPS發送真正的密碼,然後在將服務器存儲到我的數據庫之前對服務器進行醃製和哈希處理。 – Bernard

+0

我沒有看到比較哈希而不是價值的觀點,也沒有爲哈希帶來哈希。是的,這只是一個用戶的便利... – dandavis

回答

0

這有點迂腐,但確認字段是意外誤 - 條目而不是拼寫錯誤,因爲給定密碼的性質。

要回答你的問題;是的,密碼重新輸入字段僅用於驗證用戶的輸入。

JavaScript可用於確保條目滿足密碼要求(長度,特殊/有效字符,強度等),但如果用戶禁用JavaScript,該怎麼辦?在這種情況下,您必須編碼密碼才能在服務器端進行驗證。此外,由於代碼是客戶端,因此可能會被篡改以繞過您的支票(有些人只是喜歡破壞東西)。最重要的是,從網頁設計的角度來看,客戶端需要下載更多的代碼才能實現這一目的,而不是發佈額外的表單字段,因此在考慮移動時會有額外的(儘管非常小的)數據使用開銷。

但是,所有這些都是不必要的。如果您的密碼重設過程安全可靠(例如需要驗證電子郵件地址),那麼您可能無需用戶驗證他們是否輸入了他們的意思。您需要一個流程來刪除未經過驗證的帳戶,以防他們錯誤地輸入了他們的電子郵件地址......除非讓他們輸入兩次他們的電子郵件地址;)例如,基於Stack Overflow只需要我在註冊時輸入一次密碼,這似乎是本網站使用的方法。

希望這會有所幫助。