【问题标题】:How to fix XSS vulnerabilites in javascript files [closed]如何修复 javascript 文件中的 XSS 漏洞 [关闭]
【发布时间】:2017-10-23 07:50:23
【问题描述】:

我们正在使用 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 漏洞?

【问题讨论】:

  • 嗯,不,因为你没有给出任何上下文。
  • 没有。如果没有正确的输入,没有人会告诉你如何修复
  • 这是工具中提供的摘要:dashboard_handler.js 中的方法 lambda() 在第 61 行将未经验证的数据发送到 Web 浏览器,这可能导致浏览器执行恶意代码。将未经验证的数据发送到Web 浏览器可能导致浏览器执行恶意代码。
  • 另外使用的代码是: $cat = $("
    " + nameCateg[0] + "
    "); $el.append($cat);

标签: javascript jquery html asp.net


【解决方案1】:

如果数据来自用户并且没有经过适当的清理,"&lt;div class='column-title " + items[bucket][itemsNo - 1][1] + "'&gt;""&lt;span&gt;" + bucket + "&lt;/span&gt;" 都是潜在的 XSS 攻击媒介,因为攻击者可以插入任何他们想要的 HTML,包括脚本标签。

您可以重写代码,这样它就不会通过连接字符串来构建 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>");

【讨论】:

  • 谢谢@JJJ .. 这行得通。但是同样,我尝试申请以下代码但没有运气..您能帮我解决以下同样的问题吗? $cat = $("
    " + nameCateg[0] + "
    ");
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多