[英]HTML input escaping - what's the proper way?
考慮申請:
JS Framework Frontend(例如AngularJS)和REST API Backend(例如Jackson + Spring REST)和一些HTML郵件模板。
什么是從XSS全球保護整個系統的正確方法?
首先要保護前端的Web組件免於從輸入字段中公開HTML實體。
第二件事是阻止后端服務創建HTML模板(例如HTML郵件),其中包含來自用戶字段的惡意值。
想象一下像post / comment這樣包含Twitter樣式標簽的字段 - #tag會自動轉換為指向someurl / tags / tag的超鏈接,這將通過在渲染時創建HTML標簽來構建,然后,最終的div將被附加到網站。 這種div的其他用途是將其嵌入HTML郵件模板中,該模板將通過SMTP發送給其他用戶。
應用程序中會有各種各樣的領域。
我不想禁止用戶通過正則表達式或后端驗證從這些字段中輸入非字母數字字符。 但是,此輸入將以默認允許XSS攻擊的方式公開。
什么是確保這種領域的正確方法? 在將字段值發布到后端時,是否應該使用Jackson過濾器/轉換器/ escaper在全球范圍內完成? 或者它應該是每次轉義,當暴露到前端或郵件模板中的每個地方時?
你應該:
<
或>
。 你可以考慮:
&escapeHtml=true
)。 我個人並不喜歡這個,但也許它適合你的情況。 我不建議:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.