2009-08-14 72 views
0

我仍在辯論我是否想要這樣做,但我正在考慮的是阻止用戶在我的應用中輸入超鏈接到HTML表單。這是爲了避免垃圾鏈接出現在應用程序的其他用途上,因爲該應用程序基於用戶生成的內容。防止超鏈接被輸入到html表單中:客戶端或服務器端驗證?

這是一個Rails應用程序,所以我可以在用戶提交表單後對模型做一些後端驗證。

但是我想知道在提交之前執行jQuery/JavaScript中的檢查是否可取。這樣用戶可以立即得到通知,而無需任何後端處理。

這會在這裏更好 - 客戶端或服務器端驗證?

回答

6

只有到達服務器時才能控制數據。如果您使用JavaScript來嘗試去除垃圾郵件,那麼垃圾郵件發送者只會關閉JavaScript。

構建服務器端解決方案。

一旦你有了這些,考慮重複工作客戶端,讓用戶更好的東西。

+0

事實上,垃圾郵件發送者甚至不會看到JavaScript,因爲他們可能會提交自動發佈的郵件 – ideasasylum 2009-08-14 23:52:03

1

你應該同時使用,在客戶端使用jQuery validation plugin,以及任何方法適用於後端(我不知道ROR)。

ajaxy驗證解決方案可以在客戶端輸入信息時進行服務器端驗證,並相應地提供反饋/阻止提交。

希望有所幫助。

1

兩者............

2

同時使用。

當客戶端打開JavaScript時,客戶端驗證可以降低服務器的壓力。

服務器端是您的最後一道防線,對於用戶關閉JavaScript的情況應該在那裏。

2

你說:

,所以我可以做的模型的一些後臺驗證 後的形式是用戶提交 。

不!您需要必須在後端進行驗證!

Javascript可以被禁用,表單發佈可以僞造;所以你總是需要在後端/服務器上開發驗證/過濾/安全措施。

只有這樣,你才能最終添加一些JS的東西,所以你的應用程序更加用戶友好。

0

垃圾郵件發送者通常使用某種腳本來分析表單並自行構建表單數據和帖子,因此客戶端腳本對大多數垃圾郵件完全沒有用處。

0

JavaScript驗證非常適合握住非惡意用戶的手。 「輸入的密碼不匹配」,「看起來像一個無效的電子郵件地址,請仔細檢查」等。

JavaScript的缺點是,沒有辦法驗證它運行,也沒有辦法驗證它運行它按預期運行運行。一個惡意用戶或者一個帶有毛病的瀏覽器插件,或者一個帶有過熱的防火牆/內容攔截器,一個沒有JavaScript的spambot,一個啓用了NoScript的用戶或者任何其他情況的用戶都可能導致您的驗證從不會被觸發。

因此,如果需要驗證,您的服務器應始終驗證數據。 JavaScript可能是第一道防線,但它永遠不可能是最後一道防線。

相關問題