考虑申请:
JS Framework Frontend(例如AngularJS)和 REST API后端(例如Jackson + Spring REST)和一些HTML邮件模板。
从XSS全球保护整个系统的正确方法是什么?
首先要保护前端的Web组件免于从输入字段中公开HTML实体。
第二件事是阻止后端服务创建HTML模板(例如HTML邮件),其中包含来自用户字段的恶意值。
想象包含Twitter样式标签的帖子/评论字段 - #tag会自动转换为指向someurl / tags / tag的超链接,这将通过在渲染时创建HTML标记来构建,然后,最终div将是附在网站上。这种div的其他用途是将其嵌入HTML邮件模板中,该模板将通过SMTP发送给其他用户。
在这个应用程序中会有各种各样的领域。
我不想禁止用户通过正则表达式或后端验证从这些字段中输入非字母数字字符。但是,此输入将以默认允许XSS攻击的方式公开。
确保这种领域的正确方法是什么?在将字段值发布到后端时,是否应该使用Jackson过滤器/转换器/ escaper在全球范围内完成?或者它应该是每次转义,当暴露到前端或邮件模板中的每个地方时?
答案 0 :(得分:3)
你应该:
<
或>
。您可以考虑:
&escapeHtml=true
)。我个人并不喜欢这个,但也许这适合你的情况。我不推荐: