如何解决javascript代码

时间:2017-05-25 08:13:34

标签: javascript c# jquery asp.net jscript

我在网站和工具上完成安全扫描后得到以下响应,说明如下:

方法lambda()将未经验证的数据发送到下面的网络浏览器: 我很困惑如何管理它。

.html("$ " + formatMoney($("#financial_sales_price").val() - total_subtotals_val));

有人可以协助解决此漏洞。

2 个答案:

答案 0 :(得分:0)

您应该使用.text()代替.html()

它更慢,但更安全 - 任何可能的HTML数据都将显示为entifies,而不是作为html触发。看这里的例子:

  $(function(){
      $("#div1").html('<a href="example.html">Link</a><b>hello</b>');
      $("#div2").text('<a href="example.html">Link</a><b>hello</b>');
        
      $("#div3").html('&lt;a href="example.html"&gt;Link&lt;/a&gt;');
      $("#div4").text('&lt;a href="example.html"&gt;Link&lt;/a&gt;');
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1"></div>
<div id="div2"></div>
<hr/>
<div id="div3"></div>
<div id="div4"></div>
<div id="work"></div>

答案 1 :(得分:0)

1.parse to Number

        .html("$ " + 
    formatMoney(
    parseFloat($("#financial_sales_price").val())
     - parseFloat(total_subtotals_val)
));

2.使用xss-filters模块

https://www.npmjs.com/package/xss-filters