Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在grails项目的javascript文件中编码AsHTML_Javascript_Html_Grails_Backbone.js_Xss - Fatal编程技术网

如何在grails项目的javascript文件中编码AsHTML

如何在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

我有一个grails项目,其UI主要用javascript(BackBone.js)实现。 简单地说,我有一个包含javascript文件的gsp文件。gsp页面的事件由Javascript文件中定义的处理程序处理

现在我在javascript文件中发现了一些DOM XSS冲突。 例如,
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)));