【发布时间】:2020-08-05 21:56:01
【问题描述】:
我正在为一个具有多种 HTML 转义方法的项目做一些合同工作。一些属性在后端转义并使用三重句柄{{{escaped-in-backend}}} 呈现为原始字符串,其他属性从后端原始传递并使用double handlebars{{unsafe}} 转义。
JS 后端编码是使用(旧版?)ESAPI 库完成的,并混合使用encodeForHtml() 和encodeForHtmlAttribute()。我找不到关于此的大量信息,但this post 建议属性编码也将空格转义为 ,以便被认为可以免受 XSS 攻击。这可能是促使之前开发者在后端进行转义的原因。
后端转义很讨厌,我想摆脱它并依赖把手。我已经很多年没有做过 F/E 工作了,所以我只是想仔细检查一下车把的转义策略是否对属性值是安全的,例如:<input type="text" value="{{unsafe-value}}"/>。
我倾向于“是”,因为车把非常普遍,这将是一个非常明显的安全漏洞,但我找不到任何明确的文档说明。
【问题讨论】:
标签: html attributes escaping handlebars.js esapi