今天下午和小夥伴們開會想到的,在會上也和夥伴們簡單溝通一下。在這裡詳細和大家分享一下對於這個話題的認知。如果要簡單概括一下我的想法,那就是:對於資料驗證而言,前端驗證很有必要,但後端驗證必須要存在。
什麼是資料驗證
資料驗證其實就是資料的合法性校驗,例如:使用者填寫的使用者名稱或者地址是不是正確,格式是否正確等等。
為什麼要進行資料校驗。
基本可以開過為以下幾點需求:
1,約束使用者輸入的內容
2,獲取真實的使用者資訊
3,人性化的驗證,提升使用者體驗
4,對自己系統的保護
前端驗證和後端驗證的區別
前端驗證:它可以為使用者提供快速反饋,做到快速響應,使使用者能夠及時察覺所填寫資料的不合法性。基本上用JS指令碼程式碼實現,不需要把資料提交到遠端伺服器。比如,滑鼠移上去會有提示效果,滑鼠離開,就會馬上告訴你資料是否合法等等。
後端驗證:不管在前端輸入什麼,確保前端端送往伺服器最後處理的所有資料都是有效的,避免出現服務端漏洞或者不應該的異常。例如,正常的流程是使用者需要驗證身份之後才能有某些操作,但是通過 API 呼叫的時候,不需要認證也能直接執行相關操作,執行認證之後的各種許可權。
資料驗證的原則:
1.前端驗證可以不完備,但後端驗證必須要穩固
兩點理由:
(1)可以通過某些工具繞過前端驗證,後端驗證是保證資料有效性的防線。
(2)前端驗證有侷限性。例如身份資訊或者徵信資訊,需要呼叫第三方API,通過後端進行驗證。
2. 前端驗證同樣很重要,可以優化使用者的體驗
前端驗證不用提交資料,可以快速給出相應提示,提升使用者體驗,降低服務端的呼叫次數,減小壓力。
一點總結
前端驗證給使用者帶來方便,但是它不能保證安全性,可以被輕易繞過。因此,對於一個安全的資料驗證方案,後端的驗證是必須的,在每一個API呼叫時,必須考慮到這個要求。
掃描二維碼或手動搜尋微信公眾號【架構棧】: ForestNotes
歡迎轉載,帶上以下二維碼即可