【发布时间】:2018-01-24 11:51:31
【问题描述】:
我有一个 grails 项目,其 UI 主要是在 javascript(BackBone.js) 中实现的。 简而言之,我有一个包含 javascript 文件的 gsp 文件。 gsp 页面的事件由 Javascript 文件中定义的处理程序处理。
现在我在 javascript 文件中有一些 DOM XSS 违规。
例如。 cell1.innerHTML = '<div name="caCertFileName">' + item.fileName.substring(33) + '</div>';
现在我无法理解如何在 javascript 文件中使用 encodeAsHTML / encodeAsJavascript 功能。 我需要一个简短的例子来解决这个问题。
【问题讨论】:
-
你不能在 javascript 文件中使用 encodeAs 的东西,但你可以在给定 GSP 的 javascript 段中使用(这将命中 grails 并被处理),据我所知,你的静态 js 文件不是。选择是将该处理程序移动到 gsp 或集中式 gsp 并尝试在那里围绕脚本包装器进行编码 - 或者可能查看可能导致问题 item.fileName?.substring(33) 位的项目编码您应该将该特定内容传递给将 item.fileName.substring(33) 作为变量处理的后端 javascript 函数
-
这与您的另一个问题本质上是相同的问题,但在混合了服务器端/客户端语言混淆的情况下提出了不同的表述。
标签: javascript html grails backbone.js xss