2009-09-16 90 views
1

我正在和一位同事聊天,我們討論了客戶端驗證。Javascript驗證或ASP驗證?

驗證哪種方法更好(的JavaScript/asp.net驗證)?

當JavaScript在瀏覽器上,然後驗證將被禁用,但與asp.net驗證控件禁用我知道,你可以調用方法page.validate()做的驗證,即使JavaScript已禁用。

+0

我總是做服務器端驗證。這個問題涉及客戶端驗證,我應該使用JavaScript驗證還是使用asp.net驗證控件。 – JkenshinN 2009-09-16 20:58:31

回答

3

使用服務器端驗證數據的完整性和安全性。使用客戶端驗證的可用性。服務器端應該始終使用。但是客戶端驗證應該被用作增強用戶價值的一種方式。我做了一個愚蠢的錯字,我希望這個應用程序足夠聰明,可以抓住我的錯誤。如果你期望你的用戶總是做出最令人意想不到的事情,你將會有一個好的策略。雖然有很多聰明的人使用網絡。如果你首先假設它大部分只是猴子在計算機中輸入隨機的東西,那麼你的代碼和項目將更加強大。當談到面向公衆的網站和bot網絡時,猴子的比喻並不遙遠。它確實是隨機的東西通過你的形式進入。

3

兩者兼而有之。

JavaScript給出幾乎立竿見影的結果。

ASP.NET驗證是解決方案防彈/防欺騙/防欺騙。這是必須有的。

+0

你的答案聽起來有點像防彈後端是可選的。後端應始終且始終進行驗證,而客戶端驗證非常好。 – 2009-09-16 20:41:09

7

你應該總是服務器端驗證或你的風險注入攻擊。

JavaScript驗證是不錯的到了,並防止不必要的往返到服務器,但像你指出它可以禁用。

1

你必須做服務器端驗證。想象一下你的用戶有js禁用,它可能會搞亂你的數據庫。你也冒着各種注入攻擊的風險。

這就是說,在某些情況下,在線驗證是好的,因爲它給用戶的即時反饋,提高了可用性。