亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果數據已經經過清理,為什么還要驗證數據?

如果數據已經經過清理,為什么還要驗證數據?

PHP
慕田峪4524236 2023-10-15 15:41:38
我正在研究 php Rest api 后端的安全最佳實踐。我在很多地方讀到您應該清理和驗證所有用戶輸入。根據我的理解,清理將從字符串中刪除危險字符,而驗證將保證值是服務器期望的值,就像字段名稱是字符串一樣。我了解安全清理作為避免 xss 攻擊的一種方法的價值,但我不了解驗證對安全性的好處。
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

數據清理是一個強制性過程,它會通過防止惡意代碼注入來影響系統的安全性。

另一方面,數據驗證是一個業務邏輯過程,它會影響數據的完整性。并不是每個系統都強制這樣做,但是,不驗證后端接收到的數據可能會導致不穩定。例如,在電子商務中,您可能有一張特殊的優惠券,只能適用于 65 歲以上的人。您的驗證過程應在讓用戶申請優惠券之前檢查用戶的出生日期。這個邏輯應該在后端和前端重復。

前端是你的第一道防線,它不應該讓用戶執行任何非法操作。然而,前端只是一個向 API 發送請求的漂亮接口。如果 API 請求被逆向工程和操縱,則可以繞過在前端執行的任何檢查和驗證。

因此,即使您的前端不允許未達到要求年齡的用戶激活優惠券,如果后端沒有驗證,對您的 API 特制的請求也可能能夠使用優惠券。這就是數據驗證的目的。即使數據已被清理并且 API 請求“看起來正常”(因為輸入中不包含格式錯誤的數據類型或奇怪的字符),該請求也不應因業務需求而被接受,而不是出于安全原因。

但是,通過前端驗證又有什么關系呢?好吧,我們通過顯示漂亮的錯誤消息而不是通常不太花哨的 API 錯誤來獲得更好的用戶體驗,并且如果預計請求會失敗,我們還可以避免不必要的 API 請求和驗證。

總之,數據驗證是一個推薦的過程,它將帶來更好的用戶體驗并防止數據完整性問題,這與系統安全性一樣重要。


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 116 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號