我完全理解JavaScript應該用來增強用戶體驗,但是我有時會使用它來驗證輸入,例如檢查密碼文本框是否超過5個字符或檢查用戶名文本框中輸入的用戶名是否已經存在存在。正如你所想象的,如果密碼少於5個字符或用戶名已經存在,註冊按鈕將被禁用。什麼是驗證用戶輸入的正確方法?
但是,這可以從用戶瀏覽器改變,他們是否有更好的方式來驗證用戶的輸入?
我知道我可以驗證它全部通過服務器只是通過檢查文本框時,單擊註冊按鈕,但肯定它們必須是更好的方式,因此,用戶不能改變?
BTW:我使用Visual Studio的C#ASP.NET
而且,我是正確的認爲正則表達式也可以在客戶端改變
假設客戶端的所有內容都是不可信的,這是正確的。即使沒有編輯dom也無法修改單選按鈕組或複選框等內容。是的,正則表達式可以修改。您需要客戶端(UX立場)和服務器端(實際安全)驗證。 – jdphenix
基本規則是永不相信用戶。任何你放置在瀏覽器中的東西都可以在任何人離開你的服務器後被任何人操縱。因此,接受的做法是僅作爲用戶體驗機制進行客戶端驗證,並將服務器端驗證作爲實際驗證。 –
無論你做什麼或者你不做客戶端,你都應該*也有*嚴格的服務器端輸入檢查。服務器是您防止非法輸入的最後一道防線。是的,任何事情都可以在客戶端進行修改。 URL和HTTP負載也差不多。這不會使Javascript正則表達式效率不高Trust Nothing;) – paulsm4