今天下午和小伙伴們開(kāi)會(huì)想到的,在會(huì)上也和伙伴們簡(jiǎn)單溝通一下肉康。在這里詳細(xì)和大家分享一下對(duì)于這個(gè)話題的認(rèn)知能岩。如果要簡(jiǎn)單概括一下我的想法,那就是:對(duì)于數(shù)據(jù)驗(yàn)證而言株灸,前端驗(yàn)證很有必要崇摄,但后端驗(yàn)證必須要存在。
什么是數(shù)據(jù)驗(yàn)證
數(shù)據(jù)驗(yàn)證其實(shí)就是數(shù)據(jù)的合法性校驗(yàn)慌烧,例如:用戶填寫(xiě)的用戶名或者地址是不是正確逐抑,格式是否正確等等。
為什么要進(jìn)行數(shù)據(jù)校驗(yàn)杏死。
基本可以開(kāi)過(guò)為以下幾點(diǎn)需求:
1泵肄,約束用戶輸入的內(nèi)容
2捆交,獲取真實(shí)的用戶信息
3,人性化的驗(yàn)證腐巢,提升用戶體驗(yàn)
4品追,對(duì)自己系統(tǒng)的保護(hù)
前端驗(yàn)證和后端驗(yàn)證的區(qū)別
前端驗(yàn)證:它可以為用戶提供快速反饋,做到快速響應(yīng)冯丙,使用戶能夠及時(shí)察覺(jué)所填寫(xiě)數(shù)據(jù)的不合法性肉瓦。基本上用JS腳本代碼實(shí)現(xiàn)胃惜,不需要把數(shù)據(jù)提交到遠(yuǎn)程服務(wù)器泞莉。比如,鼠標(biāo)移上去會(huì)有提示效果船殉,鼠標(biāo)離開(kāi)鲫趁,就會(huì)馬上告訴你數(shù)據(jù)是否合法等等。
后端驗(yàn)證:不管在前端輸入什么利虫,確保前端端送往服務(wù)器最后處理的所有數(shù)據(jù)都是有效的挨厚,避免出現(xiàn)服務(wù)端漏洞或者不應(yīng)該的異常。例如糠惫,正常的流程是用戶需要驗(yàn)證身份之后才能有某些操作疫剃,但是通過(guò) API 調(diào)用的時(shí)候,不需要認(rèn)證也能直接執(zhí)行相關(guān)操作硼讽,執(zhí)行認(rèn)證之后的各種權(quán)限巢价。
數(shù)據(jù)驗(yàn)證的原則:
1.前端驗(yàn)證可以不完備,但后端驗(yàn)證必須要穩(wěn)固
兩點(diǎn)理由:
(1)可以通過(guò)某些工具繞過(guò)前端驗(yàn)證固阁,后端驗(yàn)證是保證數(shù)據(jù)有效性的防線壤躲。
(2)前端驗(yàn)證有局限性。例如身份信息或者征信信息您炉,需要調(diào)用第三方API柒爵,通過(guò)后端進(jìn)行驗(yàn)證。
2. 前端驗(yàn)證同樣很重要赚爵,可以優(yōu)化用戶的體驗(yàn)
前端驗(yàn)證不用提交數(shù)據(jù)棉胀,可以快速給出相應(yīng)提示,提升用戶體驗(yàn)冀膝,降低服務(wù)端的調(diào)用次數(shù)唁奢,減小壓力。
一點(diǎn)總結(jié)
前端驗(yàn)證給用戶帶來(lái)方便窝剖,但是它不能保證安全性麻掸,可以被輕易繞過(guò)。因此赐纱,對(duì)于一個(gè)安全的數(shù)據(jù)驗(yàn)證方案脊奋,后端的驗(yàn)證是必須的熬北,在每一個(gè)API調(diào)用時(shí),必須考慮到這個(gè)要求诚隙。
掃描二維碼或手動(dòng)搜索微信公眾號(hào)【架構(gòu)椦纫】: ForestNotes