2012-12-26 27 views
0

我注意到許多JavaScript重度應用程序,如Gmail,谷歌文檔等(谷歌SSO)和其他網站不使用JavaScript來驗證他們的登錄表單。一般做法是將JS用作第一級驗證,將服務器端驗證用作第二級 那麼爲什麼人們不會使用JavaScript驗證登錄頁面?是否有任何特定的安全風險?爲什麼在登錄頁面中沒有使用javaScript?

+3

驗證究竟是什麼? – epascarello

+0

有什麼用? –

+1

您可以在瀏覽器中關閉JavaScript。你走了。 – danronmoon

回答

0

我想不出有什麼好的理由不要 - 至少要驗證是否輸入了用戶名/密碼字段。

+0

是的,我希望是一樣的。但很多登錄頁面如Facebook,Google都沒有。只是想知道爲什麼。 –

4

您可以驗證電話號碼是否類似於Javascript中的電話號碼,這是一種簡單的格式驗證。

無法驗證的登錄憑據是否使用Javascript有效,這在服務器上發生。這是因爲它不是簡單的格式驗證,但服務器必須檢查數據庫中的信息是否與輸入的數據匹配。

您在JavaScript中可以做的最多的事情是驗證用戶名是否看起來像一個有效的用戶名(如果您有這樣的限制)或者密碼是否與有效密碼的規則相匹配(如果您有這樣的規則)。所做的是更快速地清除無效值。但特別是與登錄信息,你要而不是想加快進程。你希望這個過程儘可能慢以使攻擊者難以隨機地嘗試用戶名和密碼。

+1

在谷歌SSO頁面中,空值檢查也在服務器端完成。在將它傳遞給服務器端之前,通過查找字符串長度可以很容易地驗證這一點。但他們不這樣做。 –

0

簡而言之,如果javascript被關閉,繁榮就會進行驗證。考慮到無法關閉表單,使用服務器端語言(如php)驗證表單是驗證表單的最有效且最安全的方式。

如果有人關閉他們的JS,他們可以創建一個沒有用戶名或沒有密碼的帳戶,所有你需要做的事情就是運行isset,這不可能發生。

+0

登錄javascript應用程序有什麼意義?是的,一般做法是使用客戶端(JavaScript)和服務器端(服務器語言)驗證。由於編程方法(非瀏覽器)請求甚至不處理javaScript,所以服務器端驗證是必須的。 –

相關問題