避免使用Veracode CWE-80:在jquery htm()方法中对与脚本相关的HTML进行不正确的中和

时间:2018-06-14 18:32:18

标签: javascript jquery ajax veracode

我刚刚完成了我对asp.net mvc web应用程序的第一次Veracode静态扫描,Veracode发现了数十个CWE-80:网页中与脚本相关的HTML标签的不正当中和。

几乎所有这些都涉及使用jquery html()方法。我们的模式是在javascript中进行$ .ajax()调用,并在成功事件中显示html元素中$ .ajax调用的结果,如下所示:

success: function(data) {
    $('#elementid').html(data);
}

在大多数情况下,这些$ .ajax()调用是返回MVC部分视图的MVC控制器方法,充满了html标签等等。

我们如何改变我们的javascript,以便这样的调用不会被Veracode标记为CWE-80漏洞?我们仍然可以对返回blob blob的控制器方法进行客户端$ .ajax调用,并通过Veracode传递集合吗?

2 个答案:

答案 0 :(得分:1)

我安排了一次Veracode咨询,并了解到Veracode只是将所有$ .html()调用标记为中等严重性缺陷。我们可以采取两种行动方式:

  1. 通过说明将缺陷标记为“已缓解”,或
  2. 更改代码以删除对$ .html()的所有调用。

我们选择将所有这些缺陷标记为“已缓解”。

答案 1 :(得分:0)

授予该职位将近2年的机会,但是我碰到了同样的问题,因此我选择了该职位。减轻影响不是我们的选择。幸运的是,我们在Mozilla开发人员网络上找到了JavaScript WebAPI。

在我们的例子中,我们正在创建一个下拉列表,并通过jquery append()附加每个选项。 Web API对数据进行了足够的清理,以使Veracode应该允许添加或html方法调用。

https://developer.mozilla.org/en-US/docs/Web/API