1
考慮應用:HTML輸入轉義 - 正確的方法是什麼?
JS框架前端(例如AngularJS)和 REST API後端(例如傑克遜+彈簧安置)和一些HTML郵件模板。
從XSS全局保證整個系統的正確方法是什麼?
第一件事是通過從輸入字段中暴露HTML實體來保護前端的Web組件。
第二件事是阻止後端服務創建包含來自用戶字段的惡意值的HTML模板(例如HTML郵件)。
想象一下包含Twitter風格標籤的帖子/評論字段 - #tag會自動轉換爲指向someurl/tags/tag的超鏈接,這將通過在呈現時創建HTML標籤來構建,然後,最終div會被附加到網站上。這種div的其他用途是將其嵌入到HTML郵件模板中,該郵件模板將通過SMTP發送給其他用戶。
像這樣的應用程序會有各種各樣的領域。
我不想禁止用戶通過正則表達式或後端驗證從這些字段輸入非字母數字字符。但是,這些輸入將會以默認允許XSS攻擊的方式暴露。
確保這類字段的正確方法是什麼?是否應該在全球範圍內使用Jackson過濾器/轉換器/助手,將字段值發佈到後端?還是應該每次都逃脫,當暴露在前臺或郵件模板中的每個地方?