避免 Veracode CWE-80:jquery htm() 方法中脚本相关 HTML 的不当中和
Avoid Veracode CWE-80: Improper Neutralization of Script-Related HTML in jquery htm() method
我刚刚完成了对 asp.net mvc web 应用程序的第一次 Veracode 静态扫描,Veracode 发现了数十个 CWE-80:Web 中与脚本相关的 HTML 标记的不当中和页面缺陷。
几乎所有这些都涉及 jquery html() 方法的使用。我们的模式是在 javascript 中进行 $.ajax() 调用,并在成功事件中在 html 元素中显示 $.ajax 调用的结果,像这样:
success: function(data) {
$('#elementid').html(data);
}
在大多数情况下,这些 $.ajax() 调用是对 return MVC 部分视图、充满 html 标签等的 MVC 控制器方法的调用。
我们将如何改变我们的 javascript 以便像这样的调用不会被 Veracode 标记为 CWE-80 缺陷?我们仍然可以在客户端 $.ajax 调用控制器方法 return blob of html 并通过 Veracode 测试吗?
我安排了一次 Veracode 咨询,了解到 Veracode 只是将所有 $.html() 调用标记为中等严重程度的缺陷。我们可以采取两种行动:
- 将缺陷标记为 "mitigated" 并给出解释,或者
- 更改代码以删除对 $.html().
的所有调用
我们选择将所有这些缺陷标记为 "mitigated."
G运行ted 这个 post 已经快 2 年了,但是当我刚刚 运行 遇到同样的问题时,我偶然发现了它。缓解不是我们的选择。幸运的是,我们在 Mozilla Developer Network 上找到了 JavaScript WebAPI。
在我们的例子中,我们正在创建一个下拉列表并通过 jquery append() 附加每个选项。 Web API 对数据进行了足够的清理,Veracode 应该允许附加或 html 方法调用。
我刚刚完成了对 asp.net mvc web 应用程序的第一次 Veracode 静态扫描,Veracode 发现了数十个 CWE-80:Web 中与脚本相关的 HTML 标记的不当中和页面缺陷。
几乎所有这些都涉及 jquery html() 方法的使用。我们的模式是在 javascript 中进行 $.ajax() 调用,并在成功事件中在 html 元素中显示 $.ajax 调用的结果,像这样:
success: function(data) {
$('#elementid').html(data);
}
在大多数情况下,这些 $.ajax() 调用是对 return MVC 部分视图、充满 html 标签等的 MVC 控制器方法的调用。
我们将如何改变我们的 javascript 以便像这样的调用不会被 Veracode 标记为 CWE-80 缺陷?我们仍然可以在客户端 $.ajax 调用控制器方法 return blob of html 并通过 Veracode 测试吗?
我安排了一次 Veracode 咨询,了解到 Veracode 只是将所有 $.html() 调用标记为中等严重程度的缺陷。我们可以采取两种行动:
- 将缺陷标记为 "mitigated" 并给出解释,或者
- 更改代码以删除对 $.html(). 的所有调用
我们选择将所有这些缺陷标记为 "mitigated."
G运行ted 这个 post 已经快 2 年了,但是当我刚刚 运行 遇到同样的问题时,我偶然发现了它。缓解不是我们的选择。幸运的是,我们在 Mozilla Developer Network 上找到了 JavaScript WebAPI。
在我们的例子中,我们正在创建一个下拉列表并通过 jquery append() 附加每个选项。 Web API 对数据进行了足够的清理,Veracode 应该允许附加或 html 方法调用。