1
考虑应用:HTML输入转义 - 正确的方法是什么?
JS框架前端(例如AngularJS)和 REST API后端(例如杰克逊+弹簧安置)和一些HTML邮件模板。
从XSS全局保证整个系统的正确方法是什么?
第一件事是通过从输入字段中暴露HTML实体来保护前端的Web组件。
第二件事是阻止后端服务创建包含来自用户字段的恶意值的HTML模板(例如HTML邮件)。
想象一下包含Twitter风格标签的帖子/评论字段 - #tag会自动转换为指向someurl/tags/tag的超链接,这将通过在呈现时创建HTML标签来构建,然后,最终div会被附加到网站上。这种div的其他用途是将其嵌入到HTML邮件模板中,该邮件模板将通过SMTP发送给其他用户。
像这样的应用程序会有各种各样的领域。
我不想禁止用户通过正则表达式或后端验证从这些字段输入非字母数字字符。但是,这些输入将会以默认允许XSS攻击的方式暴露。
确保这类字段的正确方法是什么?是否应该在全球范围内使用Jackson过滤器/转换器/助手,将字段值发布到后端?还是应该每次都逃脱,当暴露在前台或邮件模板中的每个地方?