簡體   English   中英

REST Web服務以及XSS保護的位置

[英]REST Web Services and where to put XSS protection

我想知道在我們的網站上放置XSS保護的最佳位置。 我們的團隊分為前端團隊和后端團隊,並且由於我們使用不同的平台,因此在兩個團隊之間使用REST作為API。 我們有一個字段可以保存應該保護的HTML子集,我想知道應該在哪一層進行?

Web服務是否應該不允許它進入數據庫,還是應該由消費者在出口時對其進行驗證以確保安全? 對於不能包含HTML的字段,我們只是將其保存為原始輸入,並讓前端在演示之前對其進行轉義。

我的觀點是,如果有人嘗試使用不允許的標簽,則網絡服務應響應數據無效(我們一直使用422指示無效更新)。 我只是想知道其他人的想法。

它可能不是一個或非。 可以從許多UI調用該Web服務,並且Uis會隨着時間的推移而變化,它不應該假定其所有調用者都經過謹慎/信任。 確實有人可以通過手工制作查詢直接調用您的服務嗎?

但是,出於可用性的考慮,我們經常選擇在UI中進行友好的驗證和錯誤報告。 我剛剛完成了在網站上填寫的在線表單,如果有任何字段包含非字母數字,則該頁面會在服務層中被拒絕。 這本來是這么多更好,如果在UI已經確認進入,而不是經過3頁輸入的拒絕我的請求的地步。

(更不用說,如果該網站要求您提供雇主的姓名,並且該姓名實際上包含撇號,您似乎就受了限制!)

您應該同時使用兩者。 典型的模式是嘗試在途中對可怕的數據進行清理(如果給定值必須進行清理,那么您應該真的拒絕該請求)並在出局時進行編碼。

前者的原因是有時會丟失編碼。 后者的原因是您的數據庫不能作為數據源被信任(人們可以訪問數據庫而不會碰到您的客戶端,否則您的客戶端可能丟失了某些內容)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM