如何修复javascript文件中的XSS漏洞

时间:2017-05-23 11:25:15

标签: javascript jquery html asp.net

我们正在使用fortify扫描asp.net源代码&它抱怨下面的错误:

dashboard_handler.js中的方法lambda()将未经验证的数据发送到第61行的Web浏览器,这可能导致浏览器执行恶意代码。将未经验证的数据发送到Web浏览器可能导致浏览器执行恶意代码

我们在第61行的代码下面: 工具说第61行的代码将未经验证的数据发送到Web浏览器。

$el = $("<div class='dashboard-column'><i class='fa fa-caret-right'></i> <div class='column-title " + items[bucket][itemsNo - 1][1] + "'><span>" + bucket + "</span><i class='fa fa-caret-right caret-right'></i><i class='fa fa-caret-down'></i></div> </div>");

任何人都可以告诉我如何修复此XSS漏洞吗?

1 个答案:

答案 0 :(得分:0)

如果数据来自用户并且未正确清理,则"<div class='column-title " + items[bucket][itemsNo - 1][1] + "'>""<span>" + bucket + "</span>"都是潜在的XSS攻击媒介,因为攻击者可以只插入他们想要的任何HTML,包括脚本标记。< / p>

您可以重写代码,以便它不会通过连接字符串来构建HTML(这一般来说这不是一个坏主意,不仅仅是从安全角度来看。)

$el = $("<div class='dashboard-column'><i class='fa fa-caret-right'></i></div>");
$div = $("<div class='column-title'>").addClass( items[bucket][itemsNo - 1][1] ).appendTo( $el );
$span = $("<span>").text(bucket).appendTo($div);
$div.append("<i class='fa fa-caret-right caret-right'></i><i class='fa fa-caret-down'></i>");