簡體   English   中英

防止將超鏈接輸入html形式:客戶端或服務器端驗證?

[英]Prevent hyperlinks from being entered into a html form: client-side or server-side validation?

我仍在辯論是否要執行此操作,但是我正在考慮的是阻止用戶在我的應用程序中將超鏈接輸入HTML表單。 這是為了避免垃圾鏈接顯示給應用程序其他用途,因為該應用程序基於用戶生成的內容。

這是一個Rails應用程序,因此在用戶提交表單后,我可以在模型上進行一些后端驗證。

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

哪一個更可取-客戶端還是服務器端驗證?

只有數據到達服務器時,您才可以控制它們。 如果您使用JavaScript嘗試清除垃圾郵件,則垃圾郵件發送者只會關閉JavaScript。

構建服務器端解決方案。

了解這些內容后,請考慮復制工作客戶端以使用戶感覺更好。

同時使用。

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

服務器端是您的最后一道防線,以防用戶關閉JavaScript。

你說 :

因此我可以在用戶提交表單后對模型進行一些后端驗證。

不行 必須在后端進行驗證!

可以禁用Javascript,可以偽造表單發布; 因此,您始終需要在后端/服務器上開發驗證/過濾/所需的任何安全措施。

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

您應該同時使用兩種方法,在客戶端使用jQuery驗證插件 ,以及在后端使用適當的任何方法(我不知道ROR)。

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

希望能有所幫助。

都............

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

JavaScript驗證非常有用,可以控制非惡意用戶。 “您輸入的密碼不匹配”,“看起來像無效的電子郵件地址,請仔細檢查”等

JavaScript的缺點是,無法驗證它是否已運行,也無法按預期運行。 惡意用戶,具有故障瀏覽器插件的用戶,具有過度熱情的防火牆/內容阻止程序的用戶,沒有JavaScript的垃圾郵件程序,啟用了NoScript的用戶或任何其他情況,都可能導致您的驗證從未觸發過。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM