1 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個贊
數(shù)據(jù)清理是一個強(qiáng)制性過程,它會通過防止惡意代碼注入來影響系統(tǒng)的安全性。
另一方面,數(shù)據(jù)驗(yàn)證是一個業(yè)務(wù)邏輯過程,它會影響數(shù)據(jù)的完整性。并不是每個系統(tǒng)都強(qiáng)制這樣做,但是,不驗(yàn)證后端接收到的數(shù)據(jù)可能會導(dǎo)致不穩(wěn)定。例如,在電子商務(wù)中,您可能有一張?zhí)厥獾膬?yōu)惠券,只能適用于 65 歲以上的人。您的驗(yàn)證過程應(yīng)在讓用戶申請優(yōu)惠券之前檢查用戶的出生日期。這個邏輯應(yīng)該在后端和前端重復(fù)。
前端是你的第一道防線,它不應(yīng)該讓用戶執(zhí)行任何非法操作。然而,前端只是一個向 API 發(fā)送請求的漂亮接口。如果 API 請求被逆向工程和操縱,則可以繞過在前端執(zhí)行的任何檢查和驗(yàn)證。
因此,即使您的前端不允許未達(dá)到要求年齡的用戶激活優(yōu)惠券,如果后端沒有驗(yàn)證,對您的 API 特制的請求也可能能夠使用優(yōu)惠券。這就是數(shù)據(jù)驗(yàn)證的目的。即使數(shù)據(jù)已被清理并且 API 請求“看起來正常”(因?yàn)檩斎胫胁话袷藉e誤的數(shù)據(jù)類型或奇怪的字符),該請求也不應(yīng)因業(yè)務(wù)需求而被接受,而不是出于安全原因。
但是,通過前端驗(yàn)證又有什么關(guān)系呢?好吧,我們通過顯示漂亮的錯誤消息而不是通常不太花哨的 API 錯誤來獲得更好的用戶體驗(yàn),并且如果預(yù)計(jì)請求會失敗,我們還可以避免不必要的 API 請求和驗(yàn)證。
總之,數(shù)據(jù)驗(yàn)證是一個推薦的過程,它將帶來更好的用戶體驗(yàn)并防止數(shù)據(jù)完整性問題,這與系統(tǒng)安全性一樣重要。
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報