我应该如何正确编码包含HTML的字符串(在javascript中)

我应该如何正确编码包含HTML的字符串(在javascript中),javascript,jquery,encoding,xss,esapi,Javascript,Jquery,Encoding,Xss,Esapi,我的代码存在XSS脚本漏洞,我想防止这种情况发生。我使用Jquery编码器来防止XSS脚本编写。 下面是JS代码 function test(response) { $('#test').html( $.encoder.encodeForHTML(response)); } 答复的内容如下: response="<html><body><table><tr><td>DATA1</td><td>DATA

我的代码存在XSS脚本漏洞,我想防止这种情况发生。我使用Jquery编码器来防止XSS脚本编写。 下面是JS代码

function test(response)
{

    $('#test').html( $.encoder.encodeForHTML(response));
}
答复的内容如下:

response="<html><body><table><tr><td>DATA1</td><td>DATA2</td></tr></table></body></html>"
response=“DATA1DATA2”
因此,当我执行$.encoder.encodeForHTML()时,我希望输出将是一个表(在使用编码器之前,我正确地获得了一个表格式),但现在,响应字符串本身被打印在div元素中

有人能帮我做这个吗。。我需要对响应(其中包含一个HTML代码)进行编码,以便以适当的表格式获得输出


我是哪里出错了,还是使用了错误的函数进行编码?欢迎您的建议。

只需使用
var encodedData=encodeURI(htmlDataToEncode)将其作为响应传递之前。

因此,我需要在传递响应之前对其进行编码。。。并在这里的函数中进行解码。。。然后使用.innerHTML()将其设置在div标记内?正确。您希望使用encodeURI()对其进行编码,以便在从前端发送响应之前对所有特殊字符进行编码。使用“responseHandler”函数,将其重新转换为所需的任何格式。然后,将格式化的返回/处理的响应转储到div中。您的响应已经编码。你为什么要把它编码两次。