2017-05-04 9 views
-1

如果我需要密碼有8個字符,用戶嘗試輸入密碼「ABC」,沒有任何理由不立即響應該密碼是無效而不是將其發送到服務器進行驗證?提醒用戶,如果密碼沒有在服務器上檢查之前符合要求

如果在客戶端進行基本(密碼要求)驗證是有意義的,是否有一個特定的原因,爲什麼我應該或不應該告訴他們失敗,因爲它不符合密碼要求(因此永遠不會被設置爲密碼)?

+0

將它發送到服務器並記錄每一次嘗試更有意義。這樣,如果有人試圖不適當地訪問帳戶,就可以鎖定該帳戶。 – WalterM

+0

@WalterM - 出於安全原因進行記錄嘗試可能是件好事,但在記錄被拒絕的請求方面沒有任何優勢,攻擊者無論如何都很難執行JavaScript。由於嘗試次數太多而鎖定帳戶可能會被濫用,從服務中鎖定用戶。鎖定應該只在短時間內(也許是幾秒鐘),以防止暴力攻擊,這已經足夠了。 – martinstoeckli

回答

2

我假定這是一個場景,用戶要麼改變他們的密碼或提供一個在登記時 - 如果不是,忽略其他的:你永遠不應該泄露在失敗的登錄任何不必要的信息。

這是完全沒有做在客戶端基本驗證,以增強用戶體驗,只要你也驗證它的服務器上,因爲你永遠不能相信任何客戶端發送你。

如果你告訴他們爲什麼密碼不正確,而不是通過解釋你的密碼限制並讓他們試圖自己找到合適的密碼而使他們感到沮喪,那麼這也是一個更好的用戶體驗。

+1

迂腐的筆記:這不適用於登錄表單。 – Narf

+1

此外,儘管服務器端檢查必須存在,但如果客戶端代碼可以確定服務器將拒絕它,那麼沒有理由發送數據。節省流量和服務器資源。 – Narf

相關問題