如何在grails项目的javascript文件中编码AsHTML
我有一个grails项目,其UI主要用javascript(BackBone.js)实现。 简单地说,我有一个包含javascript文件的gsp文件。gsp页面的事件由Javascript文件中定义的处理程序处理 现在我在javascript文件中发现了一些DOM XSS冲突。 例如,如何在grails项目的javascript文件中编码AsHTML,javascript,html,grails,backbone.js,xss,Javascript,Html,Grails,Backbone.js,Xss,我有一个grails项目,其UI主要用javascript(BackBone.js)实现。 简单地说,我有一个包含javascript文件的gsp文件。gsp页面的事件由Javascript文件中定义的处理程序处理 现在我在javascript文件中发现了一些DOM XSS冲突。 例如,cell1.innerHTML=''+item.fileName.substring(33)+'' 现在我无法理解如何在javascript文件中使用encodeAsHTML/encodeAsJavascript
cell1.innerHTML=''+item.fileName.substring(33)+''代码>
现在我无法理解如何在javascript文件中使用encodeAsHTML/encodeAsJavascript函数。
我需要一个简短的例子来说明这一点。您可以定义JavaScript函数来进行html转义,并像以下那样使用它:
cell1.innerHTML=''+encodeHtml(item.fileName.substring(33))+''代码>
使用像encodeHtml
这样的函数来转换像这样的字符,您不能在javascript文件中使用encodeAs内容,但可以在给定GSP的javascript段中使用(这将命中grails并进行处理),就我所知,您的静态js文件不是这样的。选择是将该处理程序移动到gsp或集中式gsp,并尝试围绕其中的脚本包装器进行编码,或者可能考虑对项目进行编码,这可能是问题项目的原因。fileName?。substring(33)位也许您应该将该特定内容传递给处理该项目的后端javascript函数。fileName.substring(33)作为GSpposible副本中的一个变量,这个问题与您的另一个问题本质上是相同的,由于服务器端/客户端语言混淆,其表述方式不同。
$(cell1).append($("<div>")
.attr("name", "caCertFileName")
.text(item.fileName.substring(33)));